Compare commits
12 Commits
4.9.4
...
gl-sync-wo
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
406a32d825 | ||
|
|
beabe8c33b | ||
|
|
90500519d6 | ||
|
|
06921674a9 | ||
|
|
a91fa9a680 | ||
|
|
ead40dc834 | ||
|
|
2be928b569 | ||
|
|
621ba6d67c | ||
|
|
af929a8787 | ||
|
|
ef986f4256 | ||
|
|
ab36c275cf | ||
|
|
720327bc00 |
13
NEWS
13
NEWS
@@ -1,9 +1,8 @@
|
||||
Overview of Changes in 4.9.4, 12-02-2023
|
||||
Overview of Changes in 4.9.4, xx-xx-xxxx
|
||||
========================================
|
||||
|
||||
* Printing:
|
||||
- Add a CPDB backend
|
||||
- Drop the lpr backend
|
||||
- Add a CPDB print backend
|
||||
|
||||
* GtkFileDialog:
|
||||
- Robustness fixes
|
||||
@@ -11,28 +10,20 @@ Overview of Changes in 4.9.4, 12-02-2023
|
||||
* GtkScaleButton:
|
||||
- Add an 'active' property
|
||||
|
||||
* GtkSearchEntry:
|
||||
- Add placeholder text
|
||||
|
||||
* Fix conflicting type names between gtk and gio
|
||||
|
||||
* Gsk:
|
||||
- Settable filtering for scaled textures
|
||||
- Add mask nodes
|
||||
- Some robustness and crash fixes
|
||||
|
||||
* Wayland:
|
||||
- Handle dispatch failing in more places
|
||||
|
||||
* Deprecations:
|
||||
- GtkVolumeButton
|
||||
|
||||
* Translation updates:
|
||||
Belarusian
|
||||
Chinese (Taiwan)
|
||||
Georgian
|
||||
Turkish
|
||||
Ukrainian
|
||||
|
||||
|
||||
Overview of Changes in 4.9.3, 04-02-2023
|
||||
|
||||
@@ -239,14 +239,14 @@ control whether Vulkan should be used.
|
||||
### `media-gstreamer` and `media-ffmpeg`
|
||||
|
||||
By default, GTK will try to build the gstreamer backend for
|
||||
media playback support. These options can be used to explicitly
|
||||
media playback support. These option can be used to explicitly
|
||||
control which media backends should be built.
|
||||
|
||||
### `print-cups` and `print-cpdb`
|
||||
### `print-cups`
|
||||
|
||||
By default, GTK will try to build the cups and file print backends
|
||||
if their dependencies are found. These options can be used to
|
||||
explicitly control which print backends should be built.
|
||||
By default, GTK will try to build various print backends
|
||||
if their dependencies are found. This option can be used
|
||||
to explicitly control whether the cups print backend should be built.
|
||||
|
||||
### `cloudproviders`
|
||||
|
||||
|
||||
@@ -39,6 +39,7 @@ struct _GdkGLTexture {
|
||||
|
||||
GdkGLContext *context;
|
||||
guint id;
|
||||
GLsync sync;
|
||||
|
||||
GdkTexture *saved;
|
||||
|
||||
@@ -64,6 +65,7 @@ drop_gl_resources (GdkGLTexture *self)
|
||||
|
||||
g_clear_object (&self->context);
|
||||
self->id = 0;
|
||||
self->sync = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -99,6 +101,10 @@ gdk_gl_texture_invoke_callback (gpointer data)
|
||||
context = gdk_display_get_gl_context (gdk_gl_context_get_display (invoke->self->context));
|
||||
|
||||
gdk_gl_context_make_current (context);
|
||||
|
||||
if (invoke->self->sync && context != invoke->self->context)
|
||||
glWaitSync (invoke->self->sync, 0, GL_TIMEOUT_IGNORED);
|
||||
|
||||
glBindTexture (GL_TEXTURE_2D, invoke->self->id);
|
||||
|
||||
invoke->func (invoke->self, context, invoke->data);
|
||||
@@ -440,6 +446,46 @@ gdk_gl_texture_new (GdkGLContext *context,
|
||||
int height,
|
||||
GDestroyNotify destroy,
|
||||
gpointer data)
|
||||
{
|
||||
g_return_val_if_fail (GDK_IS_GL_CONTEXT (context), NULL);
|
||||
g_return_val_if_fail (id != 0, NULL);
|
||||
g_return_val_if_fail (width > 0, NULL);
|
||||
g_return_val_if_fail (height > 0, NULL);
|
||||
|
||||
return gdk_gl_texture_new_with_sync (context, id, NULL, width, height, destroy, data);
|
||||
}
|
||||
|
||||
/*< private >
|
||||
* gdk_gl_texture_new_with_sync:
|
||||
* @context: a `GdkGLContext`
|
||||
* @id: the ID of a texture that was created with @context
|
||||
* @sync: (nullable): an optional GLsync object
|
||||
* @width: the nominal width of the texture
|
||||
* @height: the nominal height of the texture
|
||||
* @destroy: a destroy notify that will be called when the GL resources
|
||||
* are released
|
||||
* @data: data that gets passed to @destroy
|
||||
*
|
||||
* Creates a new texture for an existing GL texture.
|
||||
*
|
||||
* If @sync is given, consumers of the texture are required to wait on
|
||||
* it before attempting to use the GL texture.
|
||||
*
|
||||
* The GL texture and the sync object must stay alive unmodified until
|
||||
* @destroy is called, which will happen when the GdkTexture object is
|
||||
* finalized, or due to an explicit call of [method@Gdk.GLTexture.release].
|
||||
*
|
||||
* Return value: (transfer full) (type GdkGLTexture): A newly-created
|
||||
* `GdkTexture`
|
||||
*/
|
||||
GdkTexture *
|
||||
gdk_gl_texture_new_with_sync (GdkGLContext *context,
|
||||
guint id,
|
||||
gpointer sync,
|
||||
int width,
|
||||
int height,
|
||||
GDestroyNotify destroy,
|
||||
gpointer data)
|
||||
{
|
||||
GdkGLTexture *self;
|
||||
|
||||
@@ -455,6 +501,7 @@ gdk_gl_texture_new (GdkGLContext *context,
|
||||
|
||||
self->context = g_object_ref (context);
|
||||
self->id = id;
|
||||
self->sync = sync;
|
||||
self->destroy = destroy;
|
||||
self->data = data;
|
||||
|
||||
@@ -463,3 +510,8 @@ gdk_gl_texture_new (GdkGLContext *context,
|
||||
return GDK_TEXTURE (self);
|
||||
}
|
||||
|
||||
gpointer
|
||||
gdk_gl_texture_get_sync (GdkGLTexture *self)
|
||||
{
|
||||
return self->sync;
|
||||
}
|
||||
|
||||
@@ -9,6 +9,16 @@ G_BEGIN_DECLS
|
||||
|
||||
GdkGLContext * gdk_gl_texture_get_context (GdkGLTexture *self);
|
||||
guint gdk_gl_texture_get_id (GdkGLTexture *self);
|
||||
gpointer gdk_gl_texture_get_sync (GdkGLTexture *self);
|
||||
|
||||
GDK_AVAILABLE_IN_4_10
|
||||
GdkTexture * gdk_gl_texture_new_with_sync (GdkGLContext *context,
|
||||
guint id,
|
||||
gpointer sync,
|
||||
int width,
|
||||
int height,
|
||||
GDestroyNotify destroy,
|
||||
gpointer data);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
||||
@@ -403,6 +403,7 @@ gsk_gl_command_queue_dispose (GObject *object)
|
||||
gsk_gl_command_batches_clear (&self->batches);
|
||||
gsk_gl_command_binds_clear (&self->batch_binds);
|
||||
gsk_gl_command_uniforms_clear (&self->batch_uniforms);
|
||||
gsk_gl_syncs_clear (&self->syncs);
|
||||
|
||||
gsk_gl_buffer_destroy (&self->vertices);
|
||||
|
||||
@@ -425,6 +426,7 @@ gsk_gl_command_queue_init (GskGLCommandQueue *self)
|
||||
gsk_gl_command_batches_init (&self->batches, 128);
|
||||
gsk_gl_command_binds_init (&self->batch_binds, 1024);
|
||||
gsk_gl_command_uniforms_init (&self->batch_uniforms, 2048);
|
||||
gsk_gl_syncs_init (&self->syncs, 10);
|
||||
|
||||
gsk_gl_buffer_init (&self->vertices, GL_ARRAY_BUFFER, sizeof (GskGLDrawVertex));
|
||||
}
|
||||
@@ -1098,17 +1100,25 @@ gsk_gl_command_queue_execute (GskGLCommandQueue *self,
|
||||
if G_UNLIKELY (batch->draw.bind_count > 0)
|
||||
{
|
||||
const GskGLCommandBind *bind = &self->batch_binds.items[batch->draw.bind_offset];
|
||||
|
||||
for (guint i = 0; i < batch->draw.bind_count; i++)
|
||||
{
|
||||
if (textures[bind->texture] != bind->id)
|
||||
{
|
||||
GskGLSync *s;
|
||||
|
||||
if (active != bind->texture)
|
||||
{
|
||||
active = bind->texture;
|
||||
glActiveTexture (GL_TEXTURE0 + bind->texture);
|
||||
}
|
||||
|
||||
s = gsk_gl_syncs_get_sync (&self->syncs, bind->id);
|
||||
if (s && s->sync)
|
||||
{
|
||||
glWaitSync ((GLsync) s->sync, 0, GL_TIMEOUT_IGNORED);
|
||||
s->sync = NULL;
|
||||
}
|
||||
|
||||
glBindTexture (GL_TEXTURE_2D, bind->id);
|
||||
textures[bind->texture] = bind->id;
|
||||
}
|
||||
@@ -1236,6 +1246,7 @@ gsk_gl_command_queue_end_frame (GskGLCommandQueue *self)
|
||||
self->batches.len = 0;
|
||||
self->batch_binds.len = 0;
|
||||
self->batch_uniforms.len = 0;
|
||||
self->syncs.len = 0;
|
||||
self->n_uploads = 0;
|
||||
self->tail_batch_index = -1;
|
||||
self->in_frame = FALSE;
|
||||
|
||||
@@ -167,9 +167,15 @@ typedef union _GskGLCommandBatch
|
||||
|
||||
G_STATIC_ASSERT (sizeof (GskGLCommandBatch) == 32);
|
||||
|
||||
typedef struct _GskGLSync {
|
||||
guint id;
|
||||
gpointer sync;
|
||||
} GskGLSync;
|
||||
|
||||
DEFINE_INLINE_ARRAY (GskGLCommandBatches, gsk_gl_command_batches, GskGLCommandBatch)
|
||||
DEFINE_INLINE_ARRAY (GskGLCommandBinds, gsk_gl_command_binds, GskGLCommandBind)
|
||||
DEFINE_INLINE_ARRAY (GskGLCommandUniforms, gsk_gl_command_uniforms, GskGLCommandUniform)
|
||||
DEFINE_INLINE_ARRAY (GskGLSyncs, gsk_gl_syncs, GskGLSync)
|
||||
|
||||
struct _GskGLCommandQueue
|
||||
{
|
||||
@@ -225,6 +231,8 @@ struct _GskGLCommandQueue
|
||||
*/
|
||||
GskGLCommandUniforms batch_uniforms;
|
||||
|
||||
GskGLSyncs syncs;
|
||||
|
||||
/* Discovered max texture size when loading the command queue so that we
|
||||
* can either scale down or slice textures to fit within this size. Assumed
|
||||
* to be both height and width.
|
||||
@@ -354,6 +362,37 @@ gsk_gl_command_queue_bind_framebuffer (GskGLCommandQueue *self,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline GskGLSync *
|
||||
gsk_gl_syncs_get_sync (GskGLSyncs *syncs,
|
||||
guint id)
|
||||
{
|
||||
for (unsigned int i = 0; i < syncs->len; i++)
|
||||
{
|
||||
GskGLSync *sync = &syncs->items[i];
|
||||
if (sync->id == id)
|
||||
return sync;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline void
|
||||
gsk_gl_syncs_add_sync (GskGLSyncs *syncs,
|
||||
guint id,
|
||||
gpointer sync)
|
||||
{
|
||||
GskGLSync *s;
|
||||
|
||||
s = gsk_gl_syncs_get_sync (syncs, id);
|
||||
if (s)
|
||||
g_assert (s->sync == sync);
|
||||
else
|
||||
{
|
||||
s = gsk_gl_syncs_append (syncs);
|
||||
s->id = id;
|
||||
s->sync = sync;
|
||||
}
|
||||
}
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GSK_GL_COMMAND_QUEUE_PRIVATE_H__ */
|
||||
|
||||
@@ -1329,6 +1329,7 @@ typedef struct _GskGLTextureState
|
||||
{
|
||||
GdkGLContext *context;
|
||||
GLuint texture_id;
|
||||
GLsync sync;
|
||||
} GskGLTextureState;
|
||||
|
||||
static void
|
||||
@@ -1341,6 +1342,7 @@ create_texture_from_texture_destroy (gpointer data)
|
||||
|
||||
gdk_gl_context_make_current (state->context);
|
||||
glDeleteTextures (1, &state->texture_id);
|
||||
glDeleteSync (state->sync);
|
||||
g_clear_object (&state->context);
|
||||
g_slice_free (GskGLTextureState, state);
|
||||
}
|
||||
@@ -1375,10 +1377,13 @@ gsk_gl_driver_create_gdk_texture (GskGLDriver *self,
|
||||
texture->texture_id = 0;
|
||||
gsk_gl_texture_free (texture);
|
||||
|
||||
return gdk_gl_texture_new (self->command_queue->context,
|
||||
texture_id,
|
||||
width,
|
||||
height,
|
||||
create_texture_from_texture_destroy,
|
||||
state);
|
||||
state->sync = glFenceSync (GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
|
||||
|
||||
return gdk_gl_texture_new_with_sync (self->command_queue->context,
|
||||
texture_id,
|
||||
state->sync,
|
||||
width,
|
||||
height,
|
||||
create_texture_from_texture_destroy,
|
||||
state);
|
||||
}
|
||||
|
||||
@@ -264,6 +264,27 @@ gsk_gl_program_set_uniform_texture (GskGLProgram *self,
|
||||
texture_slot);
|
||||
}
|
||||
|
||||
static inline void
|
||||
gsk_gl_program_set_uniform_texture_with_sync (GskGLProgram *self,
|
||||
guint key,
|
||||
guint stamp,
|
||||
GLenum texture_target,
|
||||
GLenum texture_slot,
|
||||
guint texture_id,
|
||||
gpointer sync)
|
||||
{
|
||||
gsk_gl_attachment_state_bind_texture (self->driver->command_queue->attachments,
|
||||
texture_target,
|
||||
texture_slot,
|
||||
texture_id);
|
||||
gsk_gl_uniform_state_set_texture (self->uniforms,
|
||||
self->program_info,
|
||||
key,
|
||||
stamp,
|
||||
texture_slot);
|
||||
gsk_gl_syncs_add_sync (&self->driver->command_queue->syncs, texture_id, sync);
|
||||
}
|
||||
|
||||
static inline void
|
||||
gsk_gl_program_set_uniform_matrix (GskGLProgram *self,
|
||||
guint key,
|
||||
|
||||
@@ -190,6 +190,7 @@ typedef struct _GskGLRenderOffscreen
|
||||
|
||||
/* Return location for texture ID */
|
||||
guint texture_id;
|
||||
gpointer sync;
|
||||
|
||||
/* Whether to force creating a new texture, even if the
|
||||
* input already is a texture
|
||||
@@ -3497,12 +3498,17 @@ gsk_gl_render_job_upload_texture (GskGLRenderJob *job,
|
||||
int mag_filter,
|
||||
GskGLRenderOffscreen *offscreen)
|
||||
{
|
||||
GdkGLTexture *gl_texture = NULL;
|
||||
|
||||
if (GDK_IS_GL_TEXTURE (texture))
|
||||
gl_texture = (GdkGLTexture *) texture;
|
||||
|
||||
if (min_filter == GL_LINEAR &&
|
||||
mag_filter == GL_LINEAR &&
|
||||
gsk_gl_texture_library_can_cache ((GskGLTextureLibrary *)job->driver->icons_library,
|
||||
texture->width,
|
||||
texture->height) &&
|
||||
!GDK_IS_GL_TEXTURE (texture))
|
||||
!gl_texture)
|
||||
{
|
||||
const GskGLIconData *icon_data;
|
||||
|
||||
@@ -3514,6 +3520,9 @@ gsk_gl_render_job_upload_texture (GskGLRenderJob *job,
|
||||
{
|
||||
offscreen->texture_id = gsk_gl_driver_load_texture (job->driver, texture, min_filter, mag_filter);
|
||||
init_full_texture_region (offscreen);
|
||||
if (gl_texture && offscreen->texture_id == gdk_gl_texture_get_id (gl_texture) &&
|
||||
gdk_gl_texture_get_context (gl_texture) != gsk_gl_command_queue_get_context (job->command_queue))
|
||||
offscreen->sync = gdk_gl_texture_get_sync (gl_texture);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3535,11 +3544,12 @@ gsk_gl_render_job_visit_texture (GskGLRenderJob *job,
|
||||
g_assert (offscreen.was_offscreen == FALSE);
|
||||
|
||||
gsk_gl_render_job_begin_draw (job, CHOOSE_PROGRAM (job, blit));
|
||||
gsk_gl_program_set_uniform_texture (job->current_program,
|
||||
UNIFORM_SHARED_SOURCE, 0,
|
||||
GL_TEXTURE_2D,
|
||||
GL_TEXTURE0,
|
||||
offscreen.texture_id);
|
||||
gsk_gl_program_set_uniform_texture_with_sync (job->current_program,
|
||||
UNIFORM_SHARED_SOURCE, 0,
|
||||
GL_TEXTURE_2D,
|
||||
GL_TEXTURE0,
|
||||
offscreen.texture_id,
|
||||
offscreen.sync);
|
||||
gsk_gl_render_job_draw_offscreen (job, bounds, &offscreen);
|
||||
gsk_gl_render_job_end_draw (job);
|
||||
}
|
||||
|
||||
@@ -60,16 +60,12 @@
|
||||
*
|
||||
* `GtkAssistant` has a single CSS node with the name window and style
|
||||
* class .assistant.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
|
||||
/**
|
||||
* GtkAssistantPage:
|
||||
*
|
||||
* `GtkAssistantPage` is an auxiliary object used by `GtkAssistant.
|
||||
*
|
||||
* Deprecated: 4.10: This object will be removed in GTK 5
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
@@ -279,8 +275,6 @@ gtk_assistant_page_class_init (GtkAssistantPageClass *class)
|
||||
* GtkAssistantPage:page-type:
|
||||
*
|
||||
* The type of the assistant page.
|
||||
*
|
||||
* Deprecated: 4.10: This object will be removed in GTK 5
|
||||
*/
|
||||
g_object_class_install_property (object_class,
|
||||
CHILD_PROP_PAGE_TYPE,
|
||||
@@ -293,8 +287,6 @@ gtk_assistant_page_class_init (GtkAssistantPageClass *class)
|
||||
* GtkAssistantPage:title:
|
||||
*
|
||||
* The title of the page.
|
||||
*
|
||||
* Deprecated: 4.10: This object will be removed in GTK 5
|
||||
*/
|
||||
g_object_class_install_property (object_class,
|
||||
CHILD_PROP_PAGE_TITLE,
|
||||
@@ -309,8 +301,6 @@ gtk_assistant_page_class_init (GtkAssistantPageClass *class)
|
||||
*
|
||||
* GTK uses this information to control the sensitivity
|
||||
* of the navigation buttons.
|
||||
*
|
||||
* Deprecated: 4.10: This object will be removed in GTK 5
|
||||
*/
|
||||
g_object_class_install_property (object_class,
|
||||
CHILD_PROP_PAGE_COMPLETE,
|
||||
@@ -322,8 +312,6 @@ gtk_assistant_page_class_init (GtkAssistantPageClass *class)
|
||||
* GtkAssistantPage:child:
|
||||
*
|
||||
* The child widget.
|
||||
*
|
||||
* Deprecated: 4.10: This object will be removed in GTK 5
|
||||
*/
|
||||
g_object_class_install_property (object_class,
|
||||
CHILD_PROP_CHILD,
|
||||
@@ -530,8 +518,6 @@ gtk_assistant_class_init (GtkAssistantClass *class)
|
||||
* @assistant: the `GtkAssistant`
|
||||
*
|
||||
* Emitted when then the cancel button is clicked.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
signals[CANCEL] =
|
||||
g_signal_new (I_("cancel"),
|
||||
@@ -552,8 +538,6 @@ gtk_assistant_class_init (GtkAssistantClass *class)
|
||||
*
|
||||
* A handler for this signal can do any preparations which are
|
||||
* necessary before showing @page.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
signals[PREPARE] =
|
||||
g_signal_new (I_("prepare"),
|
||||
@@ -579,8 +563,6 @@ gtk_assistant_class_init (GtkAssistantClass *class)
|
||||
* %GTK_ASSISTANT_PAGE_PROGRESS after the confirmation page and handle
|
||||
* this operation within the [signal@Gtk.Assistant::prepare] signal of
|
||||
* the progress page.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
signals[APPLY] =
|
||||
g_signal_new (I_("apply"),
|
||||
@@ -598,8 +580,6 @@ gtk_assistant_class_init (GtkAssistantClass *class)
|
||||
* Emitted either when the close button of a summary page is clicked,
|
||||
* or when the apply button in the last page in the flow (of type
|
||||
* %GTK_ASSISTANT_PAGE_CONFIRM) is clicked.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
signals[CLOSE] =
|
||||
g_signal_new (I_("close"),
|
||||
@@ -615,8 +595,6 @@ gtk_assistant_class_init (GtkAssistantClass *class)
|
||||
* @assistant: the `GtkAssistant`
|
||||
*
|
||||
* The action signal for the Escape binding.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
signals[ESCAPE] =
|
||||
g_signal_new_class_handler (I_("escape"),
|
||||
@@ -640,8 +618,6 @@ gtk_assistant_class_init (GtkAssistantClass *class)
|
||||
*
|
||||
* For technical reasons, this property is declared as an integer
|
||||
* property, but you should only set it to %TRUE or %FALSE.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
g_object_class_install_property (gobject_class,
|
||||
PROP_USE_HEADER_BAR,
|
||||
@@ -1459,8 +1435,6 @@ gtk_assistant_close_request (GtkWindow *window)
|
||||
* Creates a new `GtkAssistant`.
|
||||
*
|
||||
* Returns: a newly created `GtkAssistant`
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
GtkWidget*
|
||||
gtk_assistant_new (void)
|
||||
@@ -1481,8 +1455,6 @@ gtk_assistant_new (void)
|
||||
* Returns: The index (starting from 0) of the current
|
||||
* page in the @assistant, or -1 if the @assistant has no pages,
|
||||
* or no current page
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
int
|
||||
gtk_assistant_get_current_page (GtkAssistant *assistant)
|
||||
@@ -1508,8 +1480,6 @@ gtk_assistant_get_current_page (GtkAssistant *assistant)
|
||||
* Note that this will only be necessary in custom buttons,
|
||||
* as the @assistant flow can be set with
|
||||
* gtk_assistant_set_forward_page_func().
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
void
|
||||
gtk_assistant_set_current_page (GtkAssistant *assistant,
|
||||
@@ -1555,8 +1525,6 @@ gtk_assistant_set_current_page (GtkAssistant *assistant,
|
||||
*
|
||||
* This function is for use when creating pages of the
|
||||
* %GTK_ASSISTANT_PAGE_CUSTOM type.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
void
|
||||
gtk_assistant_next_page (GtkAssistant *assistant)
|
||||
@@ -1580,8 +1548,6 @@ gtk_assistant_next_page (GtkAssistant *assistant)
|
||||
*
|
||||
* This function is for use when creating pages of the
|
||||
* %GTK_ASSISTANT_PAGE_CUSTOM type.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
void
|
||||
gtk_assistant_previous_page (GtkAssistant *assistant)
|
||||
@@ -1615,8 +1581,6 @@ gtk_assistant_previous_page (GtkAssistant *assistant)
|
||||
* Returns the number of pages in the @assistant
|
||||
*
|
||||
* Returns: the number of pages in the @assistant
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
int
|
||||
gtk_assistant_get_n_pages (GtkAssistant *assistant)
|
||||
@@ -1636,8 +1600,6 @@ gtk_assistant_get_n_pages (GtkAssistant *assistant)
|
||||
*
|
||||
* Returns: (nullable) (transfer none): the child widget, or %NULL
|
||||
* if @page_num is out of bounds
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
GtkWidget*
|
||||
gtk_assistant_get_nth_page (GtkAssistant *assistant,
|
||||
@@ -1670,8 +1632,6 @@ gtk_assistant_get_nth_page (GtkAssistant *assistant,
|
||||
* Prepends a page to the @assistant.
|
||||
*
|
||||
* Returns: the index (starting at 0) of the inserted page
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
int
|
||||
gtk_assistant_prepend_page (GtkAssistant *assistant,
|
||||
@@ -1691,8 +1651,6 @@ gtk_assistant_prepend_page (GtkAssistant *assistant,
|
||||
* Appends a page to the @assistant.
|
||||
*
|
||||
* Returns: the index (starting at 0) of the inserted page
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
int
|
||||
gtk_assistant_append_page (GtkAssistant *assistant,
|
||||
@@ -1714,8 +1672,6 @@ gtk_assistant_append_page (GtkAssistant *assistant,
|
||||
* Inserts a page in the @assistant at a given position.
|
||||
*
|
||||
* Returns: the index (starting from 0) of the inserted page
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
int
|
||||
gtk_assistant_insert_page (GtkAssistant *assistant,
|
||||
@@ -1814,8 +1770,6 @@ gtk_assistant_add_page (GtkAssistant *assistant,
|
||||
* or -1 to remove the last page
|
||||
*
|
||||
* Removes the @page_num’s page from @assistant.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
void
|
||||
gtk_assistant_remove_page (GtkAssistant *assistant,
|
||||
@@ -1851,8 +1805,6 @@ gtk_assistant_remove_page (GtkAssistant *assistant,
|
||||
* Setting @page_func to %NULL will make the assistant to
|
||||
* use the default forward function, which just goes to the
|
||||
* next visible page.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
void
|
||||
gtk_assistant_set_forward_page_func (GtkAssistant *assistant,
|
||||
@@ -1901,8 +1853,6 @@ add_to_action_area (GtkAssistant *assistant,
|
||||
* @child: a `GtkWidget`
|
||||
*
|
||||
* Adds a widget to the action area of a `GtkAssistant`.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
void
|
||||
gtk_assistant_add_action_widget (GtkAssistant *assistant,
|
||||
@@ -1931,8 +1881,6 @@ gtk_assistant_add_action_widget (GtkAssistant *assistant,
|
||||
* @child: a `GtkWidget`
|
||||
*
|
||||
* Removes a widget from the action area of a `GtkAssistant`.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
void
|
||||
gtk_assistant_remove_action_widget (GtkAssistant *assistant,
|
||||
@@ -1962,8 +1910,6 @@ gtk_assistant_remove_action_widget (GtkAssistant *assistant,
|
||||
*
|
||||
* The title is displayed in the header area of the assistant
|
||||
* when @page is the current page.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
void
|
||||
gtk_assistant_set_page_title (GtkAssistant *assistant,
|
||||
@@ -1993,8 +1939,6 @@ gtk_assistant_set_page_title (GtkAssistant *assistant,
|
||||
* Gets the title for @page.
|
||||
*
|
||||
* Returns: the title for @page
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
const char *
|
||||
gtk_assistant_get_page_title (GtkAssistant *assistant,
|
||||
@@ -2024,8 +1968,6 @@ gtk_assistant_get_page_title (GtkAssistant *assistant,
|
||||
* Sets the page type for @page.
|
||||
*
|
||||
* The page type determines the page behavior in the @assistant.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
void
|
||||
gtk_assistant_set_page_type (GtkAssistant *assistant,
|
||||
@@ -2055,8 +1997,6 @@ gtk_assistant_set_page_type (GtkAssistant *assistant,
|
||||
* Gets the page type of @page.
|
||||
*
|
||||
* Returns: the page type of @page
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
GtkAssistantPageType
|
||||
gtk_assistant_get_page_type (GtkAssistant *assistant,
|
||||
@@ -2087,8 +2027,6 @@ gtk_assistant_get_page_type (GtkAssistant *assistant,
|
||||
*
|
||||
* This will make @assistant update the buttons state
|
||||
* to be able to continue the task.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
void
|
||||
gtk_assistant_set_page_complete (GtkAssistant *assistant,
|
||||
@@ -2118,8 +2056,6 @@ gtk_assistant_set_page_complete (GtkAssistant *assistant,
|
||||
* Gets whether @page is complete.
|
||||
*
|
||||
* Returns: %TRUE if @page is complete.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
gboolean
|
||||
gtk_assistant_get_page_complete (GtkAssistant *assistant,
|
||||
@@ -2153,8 +2089,6 @@ gtk_assistant_get_page_complete (GtkAssistant *assistant,
|
||||
* One situation where it can be necessary to call this
|
||||
* function is when changing a value on the current page
|
||||
* affects the future page flow of the assistant.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
void
|
||||
gtk_assistant_update_buttons_state (GtkAssistant *assistant)
|
||||
@@ -2178,8 +2112,6 @@ gtk_assistant_update_buttons_state (GtkAssistant *assistant)
|
||||
* or undone. For example, showing a progress page to track
|
||||
* a long-running, unreversible operation after the user has
|
||||
* clicked apply on a confirmation page.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
void
|
||||
gtk_assistant_commit (GtkAssistant *assistant)
|
||||
@@ -2257,8 +2189,6 @@ gtk_assistant_buildable_custom_finished (GtkBuildable *buildable,
|
||||
* Returns the `GtkAssistantPage` object for @child.
|
||||
*
|
||||
* Returns: (transfer none): the `GtkAssistantPage` for @child
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
GtkAssistantPage *
|
||||
gtk_assistant_get_page (GtkAssistant *assistant,
|
||||
@@ -2275,8 +2205,6 @@ gtk_assistant_get_page (GtkAssistant *assistant,
|
||||
* Returns the child to which @page belongs.
|
||||
*
|
||||
* Returns: (transfer none): the child to which @page belongs
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
GtkWidget *
|
||||
gtk_assistant_page_get_child (GtkAssistantPage *page)
|
||||
@@ -2388,8 +2316,6 @@ gtk_assistant_pages_new (GtkAssistant *assistant)
|
||||
* Gets a list model of the assistant pages.
|
||||
*
|
||||
* Returns: (transfer full) (attributes element-type=GtkAssistantPage): A list model of the pages.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
GListModel *
|
||||
gtk_assistant_get_pages (GtkAssistant *assistant)
|
||||
|
||||
@@ -34,8 +34,6 @@
|
||||
* same context which was used to request sizes for a given `GtkTreeModel`
|
||||
* row also be used for the same row when calling other `GtkCellArea` APIs
|
||||
* such as gtk_cell_area_render() and gtk_cell_area_event().
|
||||
*
|
||||
* Deprecated: 4.10: This object will be removed in GTK 5
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
@@ -109,8 +107,6 @@ gtk_cell_area_context_class_init (GtkCellAreaContextClass *class)
|
||||
* GtkCellAreaContext:area:
|
||||
*
|
||||
* The `GtkCellArea` this context was created by
|
||||
*
|
||||
* Deprecated: 4.10: This object will be removed in GTK 5
|
||||
*/
|
||||
g_object_class_install_property (object_class,
|
||||
PROP_CELL_AREA,
|
||||
@@ -124,8 +120,6 @@ gtk_cell_area_context_class_init (GtkCellAreaContextClass *class)
|
||||
* The minimum width for the `GtkCellArea` in this context
|
||||
* for all `GtkTreeModel` rows that this context was requested
|
||||
* for using gtk_cell_area_get_preferred_width().
|
||||
*
|
||||
* Deprecated: 4.10: This object will be removed in GTK 5
|
||||
*/
|
||||
g_object_class_install_property (object_class,
|
||||
PROP_MIN_WIDTH,
|
||||
@@ -139,8 +133,6 @@ gtk_cell_area_context_class_init (GtkCellAreaContextClass *class)
|
||||
* The natural width for the `GtkCellArea` in this context
|
||||
* for all `GtkTreeModel` rows that this context was requested
|
||||
* for using gtk_cell_area_get_preferred_width().
|
||||
*
|
||||
* Deprecated: 4.10: This object will be removed in GTK 5
|
||||
*/
|
||||
g_object_class_install_property (object_class,
|
||||
PROP_NAT_WIDTH,
|
||||
@@ -154,8 +146,6 @@ gtk_cell_area_context_class_init (GtkCellAreaContextClass *class)
|
||||
* The minimum height for the `GtkCellArea` in this context
|
||||
* for all `GtkTreeModel` rows that this context was requested
|
||||
* for using gtk_cell_area_get_preferred_height().
|
||||
*
|
||||
* Deprecated: 4.10: This object will be removed in GTK 5
|
||||
*/
|
||||
g_object_class_install_property (object_class,
|
||||
PROP_MIN_HEIGHT,
|
||||
@@ -169,8 +159,6 @@ gtk_cell_area_context_class_init (GtkCellAreaContextClass *class)
|
||||
* The natural height for the `GtkCellArea` in this context
|
||||
* for all `GtkTreeModel` rows that this context was requested
|
||||
* for using gtk_cell_area_get_preferred_height().
|
||||
*
|
||||
* Deprecated: 4.10: This object will be removed in GTK 5
|
||||
*/
|
||||
g_object_class_install_property (object_class,
|
||||
PROP_NAT_HEIGHT,
|
||||
@@ -321,7 +309,7 @@ gtk_cell_area_context_real_allocate (GtkCellAreaContext *context,
|
||||
*
|
||||
* Returns: (transfer none): the `GtkCellArea` this context was created by.
|
||||
*
|
||||
* Deprecated: 4.10: This object will be removed in GTK 5
|
||||
* Deprecated: 4.10
|
||||
*/
|
||||
GtkCellArea *
|
||||
gtk_cell_area_context_get_area (GtkCellAreaContext *context)
|
||||
@@ -360,7 +348,7 @@ gtk_cell_area_context_get_area (GtkCellAreaContext *context)
|
||||
* of all the displayed row heights using
|
||||
* gtk_cell_area_get_preferred_height_for_width().
|
||||
*
|
||||
* Deprecated: 4.10: This object will be removed in GTK 5
|
||||
* Deprecated: 4.10
|
||||
*/
|
||||
void
|
||||
gtk_cell_area_context_reset (GtkCellAreaContext *context)
|
||||
@@ -389,7 +377,7 @@ gtk_cell_area_context_reset (GtkCellAreaContext *context)
|
||||
* rows. This is generally the case for `GtkTreeView` when
|
||||
* `GtkTreeView:fixed-height-mode` is enabled.
|
||||
*
|
||||
* Deprecated: 4.10: This object will be removed in GTK 5
|
||||
* Deprecated: 4.10
|
||||
*/
|
||||
void
|
||||
gtk_cell_area_context_allocate (GtkCellAreaContext *context,
|
||||
@@ -413,7 +401,7 @@ gtk_cell_area_context_allocate (GtkCellAreaContext *context,
|
||||
* After gtk_cell_area_context_reset() is called and/or before ever
|
||||
* requesting the size of a `GtkCellArea`, the returned values are 0.
|
||||
*
|
||||
* Deprecated: 4.10: This object will be removed in GTK 5
|
||||
* Deprecated: 4.10
|
||||
*/
|
||||
void
|
||||
gtk_cell_area_context_get_preferred_width (GtkCellAreaContext *context,
|
||||
@@ -443,7 +431,7 @@ gtk_cell_area_context_get_preferred_width (GtkCellAreaContext *context,
|
||||
* After gtk_cell_area_context_reset() is called and/or before ever
|
||||
* requesting the size of a `GtkCellArea`, the returned values are 0.
|
||||
*
|
||||
* Deprecated: 4.10: This object will be removed in GTK 5
|
||||
* Deprecated: 4.10
|
||||
*/
|
||||
void
|
||||
gtk_cell_area_context_get_preferred_height (GtkCellAreaContext *context,
|
||||
@@ -474,7 +462,7 @@ gtk_cell_area_context_get_preferred_height (GtkCellAreaContext *context,
|
||||
* After gtk_cell_area_context_reset() is called and/or before ever
|
||||
* requesting the size of a `GtkCellArea`, the returned values are -1.
|
||||
*
|
||||
* Deprecated: 4.10: This object will be removed in GTK 5
|
||||
* Deprecated: 4.10
|
||||
*/
|
||||
void
|
||||
gtk_cell_area_context_get_preferred_height_for_width (GtkCellAreaContext *context,
|
||||
@@ -504,7 +492,7 @@ gtk_cell_area_context_get_preferred_height_for_width (GtkCellAreaContext *contex
|
||||
* After gtk_cell_area_context_reset() is called and/or before ever
|
||||
* requesting the size of a `GtkCellArea`, the returned values are -1.
|
||||
*
|
||||
* Deprecated: 4.10: This object will be removed in GTK 5
|
||||
* Deprecated: 4.10
|
||||
*/
|
||||
void
|
||||
gtk_cell_area_context_get_preferred_width_for_height (GtkCellAreaContext *context,
|
||||
@@ -533,7 +521,7 @@ gtk_cell_area_context_get_preferred_width_for_height (GtkCellAreaContext *contex
|
||||
* context was recently reset with gtk_cell_area_context_reset(),
|
||||
* the returned value will be -1.
|
||||
*
|
||||
* Deprecated: 4.10: This object will be removed in GTK 5
|
||||
* Deprecated: 4.10
|
||||
*/
|
||||
void
|
||||
gtk_cell_area_context_get_allocation (GtkCellAreaContext *context,
|
||||
@@ -565,7 +553,7 @@ gtk_cell_area_context_get_allocation (GtkCellAreaContext *context,
|
||||
* progressively push the requested width over a series of
|
||||
* gtk_cell_area_get_preferred_width() requests.
|
||||
*
|
||||
* Deprecated: 4.10: This object will be removed in GTK 5
|
||||
* Deprecated: 4.10
|
||||
*/
|
||||
void
|
||||
gtk_cell_area_context_push_preferred_width (GtkCellAreaContext *context,
|
||||
@@ -609,7 +597,7 @@ gtk_cell_area_context_push_preferred_width (GtkCellAreaContext *context,
|
||||
* progressively push the requested height over a series of
|
||||
* gtk_cell_area_get_preferred_height() requests.
|
||||
*
|
||||
* Deprecated: 4.10: This object will be removed in GTK 5
|
||||
* Deprecated: 4.10
|
||||
*/
|
||||
void
|
||||
gtk_cell_area_context_push_preferred_height (GtkCellAreaContext *context,
|
||||
|
||||
@@ -70,8 +70,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
* [property@Gtk.LockButton:tooltip-lock],
|
||||
* [property@Gtk.LockButton:tooltip-unlock] and
|
||||
* [property@Gtk.LockButton:tooltip-not-authorized] properties.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
|
||||
struct _GtkLockButton
|
||||
@@ -273,8 +271,6 @@ gtk_lock_button_class_init (GtkLockButtonClass *klass)
|
||||
* GtkLockButton:permission: (attributes org.gtk.Property.get=gtk_lock_button_get_permission org.gtk.Property.set=gtk_lock_button_set_permission)
|
||||
*
|
||||
* The `GPermission object controlling this button.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
g_object_class_install_property (gobject_class, PROP_PERMISSION,
|
||||
g_param_spec_object ("permission", NULL, NULL,
|
||||
@@ -286,8 +282,6 @@ gtk_lock_button_class_init (GtkLockButtonClass *klass)
|
||||
* GtkLockButton:text-lock:
|
||||
*
|
||||
* The text to display when prompting the user to lock.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
g_object_class_install_property (gobject_class, PROP_TEXT_LOCK,
|
||||
g_param_spec_string ("text-lock", NULL, NULL,
|
||||
@@ -300,8 +294,6 @@ gtk_lock_button_class_init (GtkLockButtonClass *klass)
|
||||
* GtkLockButton:text-unlock:
|
||||
*
|
||||
* The text to display when prompting the user to unlock.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
g_object_class_install_property (gobject_class, PROP_TEXT_UNLOCK,
|
||||
g_param_spec_string ("text-unlock", NULL, NULL,
|
||||
@@ -314,8 +306,6 @@ gtk_lock_button_class_init (GtkLockButtonClass *klass)
|
||||
* GtkLockButton:tooltip-lock:
|
||||
*
|
||||
* The tooltip to display when prompting the user to lock.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
g_object_class_install_property (gobject_class, PROP_TOOLTIP_LOCK,
|
||||
g_param_spec_string ("tooltip-lock", NULL, NULL,
|
||||
@@ -328,8 +318,6 @@ gtk_lock_button_class_init (GtkLockButtonClass *klass)
|
||||
* GtkLockButton:tooltip-unlock:
|
||||
*
|
||||
* The tooltip to display when prompting the user to unlock.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
g_object_class_install_property (gobject_class, PROP_TOOLTIP_UNLOCK,
|
||||
g_param_spec_string ("tooltip-unlock", NULL, NULL,
|
||||
@@ -342,8 +330,6 @@ gtk_lock_button_class_init (GtkLockButtonClass *klass)
|
||||
* GtkLockButton:tooltip-not-authorized:
|
||||
*
|
||||
* The tooltip to display when the user cannot obtain authorization.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
g_object_class_install_property (gobject_class, PROP_TOOLTIP_NOT_AUTHORIZED,
|
||||
g_param_spec_string ("tooltip-not-authorized", NULL, NULL,
|
||||
@@ -525,8 +511,6 @@ gtk_lock_button_clicked (GtkButton *widget)
|
||||
* Creates a new lock button which reflects the @permission.
|
||||
*
|
||||
* Returns: a new `GtkLockButton`
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
GtkWidget *
|
||||
gtk_lock_button_new (GPermission *permission)
|
||||
@@ -543,8 +527,6 @@ gtk_lock_button_new (GPermission *permission)
|
||||
* Obtains the `GPermission` object that controls @button.
|
||||
*
|
||||
* Returns: (transfer none) (nullable): the `GPermission` of @button
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
GPermission *
|
||||
gtk_lock_button_get_permission (GtkLockButton *button)
|
||||
@@ -560,8 +542,6 @@ gtk_lock_button_get_permission (GtkLockButton *button)
|
||||
* @permission: (nullable): a `GPermission` object
|
||||
*
|
||||
* Sets the `GPermission` object that controls @button.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
void
|
||||
gtk_lock_button_set_permission (GtkLockButton *button,
|
||||
|
||||
@@ -77,8 +77,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
* ## CSS node
|
||||
*
|
||||
* `GtkStatusbar` has a single CSS node with name `statusbar`.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
|
||||
typedef struct _GtkStatusbarMsg GtkStatusbarMsg;
|
||||
@@ -169,8 +167,6 @@ gtk_statusbar_class_init (GtkStatusbarClass *class)
|
||||
* @text: the message that was pushed
|
||||
*
|
||||
* Emitted whenever a new message gets pushed onto a statusbar's stack.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
statusbar_signals[SIGNAL_TEXT_PUSHED] =
|
||||
g_signal_new (I_("text-pushed"),
|
||||
@@ -190,8 +186,6 @@ gtk_statusbar_class_init (GtkStatusbarClass *class)
|
||||
* @text: the message that was just popped
|
||||
*
|
||||
* Emitted whenever a new message is popped off a statusbar's stack.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
statusbar_signals[SIGNAL_TEXT_POPPED] =
|
||||
g_signal_new (I_("text-popped"),
|
||||
@@ -231,8 +225,6 @@ gtk_statusbar_init (GtkStatusbar *statusbar)
|
||||
* Creates a new `GtkStatusbar` ready for messages.
|
||||
*
|
||||
* Returns: the new `GtkStatusbar`
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
GtkWidget*
|
||||
gtk_statusbar_new (void)
|
||||
@@ -265,8 +257,6 @@ gtk_statusbar_update (GtkStatusbar *statusbar,
|
||||
* Note that the description is not shown in the UI.
|
||||
*
|
||||
* Returns: an integer id
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
guint
|
||||
gtk_statusbar_get_context_id (GtkStatusbar *statusbar,
|
||||
@@ -327,8 +317,6 @@ gtk_statusbar_msg_free (GtkStatusbarMsg *msg)
|
||||
*
|
||||
* Returns: a message id that can be used with
|
||||
* [method@Gtk.Statusbar.remove].
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
guint
|
||||
gtk_statusbar_push (GtkStatusbar *statusbar,
|
||||
@@ -363,8 +351,6 @@ gtk_statusbar_push (GtkStatusbar *statusbar,
|
||||
* Note that this may not change the displayed message,
|
||||
* if the message at the top of the stack has a different
|
||||
* context id.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
void
|
||||
gtk_statusbar_pop (GtkStatusbar *statusbar,
|
||||
@@ -409,8 +395,6 @@ gtk_statusbar_pop (GtkStatusbar *statusbar,
|
||||
*
|
||||
* Forces the removal of a message from a statusbar’s stack.
|
||||
* The exact @context_id and @message_id must be specified.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
void
|
||||
gtk_statusbar_remove (GtkStatusbar *statusbar,
|
||||
@@ -459,8 +443,6 @@ gtk_statusbar_remove (GtkStatusbar *statusbar,
|
||||
*
|
||||
* Forces the removal of all messages from a statusbar's
|
||||
* stack with the exact @context_id.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
void
|
||||
gtk_statusbar_remove_all (GtkStatusbar *statusbar,
|
||||
@@ -517,8 +499,6 @@ gtk_statusbar_remove_all (GtkStatusbar *statusbar,
|
||||
* Retrieves the contents of the label in `GtkStatusbar`.
|
||||
*
|
||||
* Returns: (transfer none): the contents of the statusbar
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
const char *
|
||||
gtk_statusbar_get_message (GtkStatusbar *statusbar)
|
||||
|
||||
@@ -44,8 +44,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
* volume control.
|
||||
*
|
||||
* 
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
|
||||
typedef struct _GtkVolumeButtonClass GtkVolumeButtonClass;
|
||||
@@ -170,8 +168,6 @@ gtk_volume_button_class_init (GtkVolumeButtonClass *klass)
|
||||
*
|
||||
* Note that if the symbolic icons are not available in your installed
|
||||
* theme, then the normal (potentially colorful) icons will be used.
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
g_object_class_install_property (gobject_class,
|
||||
PROP_SYMBOLIC,
|
||||
@@ -204,8 +200,6 @@ gtk_volume_button_init (GtkVolumeButton *button)
|
||||
* [class@Gtk.ScaleButton].
|
||||
*
|
||||
* Returns: a new `GtkVolumeButton`
|
||||
*
|
||||
* Deprecated: 4.10: This widget will be removed in GTK 5
|
||||
*/
|
||||
GtkWidget *
|
||||
gtk_volume_button_new (void)
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
#include "gtksnapshot.h"
|
||||
#include "gtkrenderlayoutprivate.h"
|
||||
#include "gtkcssnodeprivate.h"
|
||||
#include "gdk/gdkgltextureprivate.h"
|
||||
|
||||
#include <epoxy/gl.h>
|
||||
|
||||
@@ -144,6 +145,7 @@
|
||||
|
||||
typedef struct {
|
||||
guint id;
|
||||
GLsync sync;
|
||||
int width;
|
||||
int height;
|
||||
GdkTexture *holder;
|
||||
@@ -394,6 +396,8 @@ delete_one_texture (gpointer data)
|
||||
texture->id = 0;
|
||||
}
|
||||
|
||||
g_clear_pointer (&texture->sync, glDeleteSync);
|
||||
|
||||
g_free (texture);
|
||||
}
|
||||
|
||||
@@ -673,6 +677,7 @@ release_texture (gpointer data)
|
||||
{
|
||||
Texture *texture = data;
|
||||
texture->holder = NULL;
|
||||
g_clear_pointer (&texture->sync, glDeleteSync);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -735,11 +740,13 @@ gtk_gl_area_snapshot (GtkWidget *widget,
|
||||
priv->texture = NULL;
|
||||
priv->textures = g_list_prepend (priv->textures, texture);
|
||||
|
||||
texture->holder = gdk_gl_texture_new (priv->context,
|
||||
texture->id,
|
||||
texture->width,
|
||||
texture->height,
|
||||
release_texture, texture);
|
||||
texture->sync = glFenceSync (GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
|
||||
texture->holder = gdk_gl_texture_new_with_sync (priv->context,
|
||||
texture->id,
|
||||
texture->sync,
|
||||
texture->width,
|
||||
texture->height,
|
||||
release_texture, texture);
|
||||
|
||||
/* Our texture is rendered by OpenGL, so it is upside down,
|
||||
* compared to what GSK expects, so flip it back.
|
||||
|
||||
@@ -832,42 +832,6 @@ gtk_search_entry_get_key_controller (GtkSearchEntry *entry)
|
||||
return gtk_text_get_key_controller (GTK_TEXT (entry->entry));
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_search_entry_get_placeholder_text:
|
||||
* @entry: a `GtkSearchEntry`
|
||||
*
|
||||
* Gets the placeholder text associated with @entry.
|
||||
*
|
||||
* Returns: (nullable): The placeholder text.
|
||||
*
|
||||
* Since: 4.10
|
||||
*/
|
||||
const char *
|
||||
gtk_search_entry_get_placeholder_text (GtkSearchEntry *entry)
|
||||
{
|
||||
g_return_val_if_fail (GTK_IS_SEARCH_ENTRY (entry), NULL);
|
||||
|
||||
return gtk_text_get_placeholder_text (GTK_TEXT (entry->entry));
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_search_entry_set_placeholder_text:
|
||||
* @entry: a `GtkSearchEntry`
|
||||
* @text: (nullable): the text to set as a placeholder
|
||||
*
|
||||
* Sets the placeholder text associated with @entry.
|
||||
*
|
||||
* Since: 4.10
|
||||
*/
|
||||
void
|
||||
gtk_search_entry_set_placeholder_text (GtkSearchEntry *entry,
|
||||
const char *text)
|
||||
{
|
||||
g_return_if_fail (GTK_IS_SEARCH_ENTRY (entry));
|
||||
|
||||
gtk_text_set_placeholder_text (GTK_TEXT (entry->entry), text);
|
||||
}
|
||||
|
||||
GtkText *
|
||||
gtk_search_entry_get_text_widget (GtkSearchEntry *entry)
|
||||
{
|
||||
|
||||
@@ -60,12 +60,6 @@ void gtk_search_entry_set_search_delay (GtkSearchEntry *entry,
|
||||
GDK_AVAILABLE_IN_4_8
|
||||
guint gtk_search_entry_get_search_delay (GtkSearchEntry *entry);
|
||||
|
||||
GDK_AVAILABLE_IN_4_10
|
||||
void gtk_search_entry_set_placeholder_text (GtkSearchEntry *entry,
|
||||
const char *text);
|
||||
GDK_AVAILABLE_IN_4_10
|
||||
const char * gtk_search_entry_get_placeholder_text (GtkSearchEntry *entry);
|
||||
|
||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkSearchEntry, g_object_unref)
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#include "config.h"
|
||||
|
||||
#include "gtkgstsinkprivate.h"
|
||||
#include "gdkgltextureprivate.h"
|
||||
|
||||
#include "gtkgstpaintableprivate.h"
|
||||
|
||||
@@ -290,19 +291,22 @@ gtk_gst_sink_texture_from_buffer (GtkGstSink *self,
|
||||
GstGLSyncMeta *sync_meta;
|
||||
|
||||
sync_meta = gst_buffer_get_gl_sync_meta (buffer);
|
||||
if (sync_meta) {
|
||||
if (sync_meta)
|
||||
gst_gl_sync_meta_set_sync_point (sync_meta, self->gst_context);
|
||||
gst_gl_context_activate (self->gst_gdk_context, TRUE);
|
||||
gst_gl_sync_meta_wait (sync_meta, self->gst_gdk_context);
|
||||
gst_gl_context_activate (self->gst_gdk_context, FALSE);
|
||||
}
|
||||
|
||||
texture = gdk_gl_texture_new (self->gdk_context,
|
||||
*(guint *) frame->data[0],
|
||||
frame->info.width,
|
||||
frame->info.height,
|
||||
(GDestroyNotify) video_frame_free,
|
||||
frame);
|
||||
/* Note: using the gdk_context here is a (harmless) lie,
|
||||
* since the texture really originates in the gst_context.
|
||||
* But that is not a GdkGLContext. It is harmless, because
|
||||
* we are never using the texture in the gdk_context, so we
|
||||
* never make the (erroneous) decision to ignore the sync.
|
||||
*/
|
||||
texture = gdk_gl_texture_new_with_sync (self->gdk_context,
|
||||
*(guint *) frame->data[0],
|
||||
sync_meta ? sync_meta->data : NULL,
|
||||
frame->info.width,
|
||||
frame->info.height,
|
||||
(GDestroyNotify) video_frame_free,
|
||||
frame);
|
||||
|
||||
*pixel_aspect_ratio = ((double) frame->info.par_n) / ((double) frame->info.par_d);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user