diff options
193 files changed, 6457 insertions, 6236 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index db6eaf101e..a67069ebee 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -44,7 +44,7 @@ msys2-mingw32: <<: *mingw-defaults .flatpak-defaults: &flatpak-defaults - image: registry.gitlab.com/alatiera/gnome-nightly-oci/gnome-master:latest + image: registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master stage: flatpak artifacts: paths: @@ -27,8 +27,8 @@ Overview of Changes in GTK+ 3.94.0 * Applications can now create their own GtkSnapshot objects for intermediate rendering. -* Widget event signals have been replaced by event controller, and - some new event controllers have been introduced for this: +* Widget event signals have been replaced by event controllers, + and some new event controllers have been introduced for this: GtkEventControllerMotion GtkEventControllerKey GtkGestureStylus @@ -68,6 +68,10 @@ Overview of Changes in GTK+ 3.94.0 gtk_widget_draw gtk_render_icon_surface +* Incomplete transitions: + The ::event signal is not still there, but it will be removed + The DND apis are not finalized yet + * Translation updates: Croatian Esperanto diff --git a/demos/gtk-demo/clipboard.c b/demos/gtk-demo/clipboard.c index bdea28dbb3..658c716c4d 100644 --- a/demos/gtk-demo/clipboard.c +++ b/demos/gtk-demo/clipboard.c @@ -120,7 +120,7 @@ get_image_paintable (GtkImage *image) static void drag_begin (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, gpointer data) { GdkPaintable *paintable; @@ -128,14 +128,14 @@ drag_begin (GtkWidget *widget, paintable = get_image_paintable (GTK_IMAGE (widget)); if (paintable) { - gtk_drag_set_icon_paintable (context, paintable, -2, -2); + gtk_drag_set_icon_paintable (drag, paintable, -2, -2); g_object_unref (paintable); } } void drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data, guint info, gpointer data) diff --git a/demos/gtk-demo/listbox.ui b/demos/gtk-demo/listbox.ui index 606a520224..9ddf9ede12 100644 --- a/demos/gtk-demo/listbox.ui +++ b/demos/gtk-demo/listbox.ui @@ -154,6 +154,7 @@ </child> <child> <object class="GtkBox" id="extra_buttons_box"> + <property name="visible">0</property> <property name="spacing">6</property> <child> <object class="GtkButton" id="reply-button"> diff --git a/demos/gtk-demo/popover.c b/demos/gtk-demo/popover.c index f49949adf0..2feb48ac70 100644 --- a/demos/gtk-demo/popover.c +++ b/demos/gtk-demo/popover.c @@ -77,7 +77,6 @@ entry_size_allocate_cb (GtkEntry *entry, static void entry_icon_press_cb (GtkEntry *entry, GtkEntryIconPosition icon_pos, - GdkEvent *event, gpointer user_data) { GtkWidget *popover = user_data; diff --git a/demos/gtk-demo/search_entry.c b/demos/gtk-demo/search_entry.c index 6d6f1ec143..d45afa290b 100644 --- a/demos/gtk-demo/search_entry.c +++ b/demos/gtk-demo/search_entry.c @@ -151,11 +151,10 @@ create_search_menu (GtkWidget *entry) static void icon_press_cb (GtkEntry *entry, gint position, - GdkEventButton *event, gpointer data) { if (position == GTK_ENTRY_ICON_PRIMARY) - gtk_menu_popup_at_pointer (GTK_MENU (menu), (GdkEvent *) event); + gtk_menu_popup_at_pointer (GTK_MENU (menu), NULL); } static void diff --git a/demos/icon-browser/iconbrowserwin.c b/demos/icon-browser/iconbrowserwin.c index 409695d03b..094ecf0468 100644 --- a/demos/icon-browser/iconbrowserwin.c +++ b/demos/icon-browser/iconbrowserwin.c @@ -376,7 +376,7 @@ search_mode_toggled (GObject *searchbar, GParamSpec *pspec, IconBrowserWindow *w static void get_image_data (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection, guint target_info, gpointer data) @@ -398,7 +398,7 @@ get_image_data (GtkWidget *widget, static void get_scalable_image_data (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection, guint target_info, gpointer data) diff --git a/demos/widget-factory/widget-factory.c b/demos/widget-factory/widget-factory.c index 8b8e852dd5..d0e2cafbb1 100644 --- a/demos/widget-factory/widget-factory.c +++ b/demos/widget-factory/widget-factory.c @@ -353,7 +353,6 @@ update_pulse_time (GtkAdjustment *adjustment, GtkWidget *widget) static void on_entry_icon_release (GtkEntry *entry, GtkEntryIconPosition icon_pos, - GdkEvent *event, gpointer user_data) { if (icon_pos != GTK_ENTRY_ICON_SECONDARY) @@ -967,8 +966,8 @@ background_loaded_cb (GObject *source, return; } - child = gtk_image_new_from_pixbuf (pixbuf); - gtk_widget_show (child); + child = gtk_picture_new_for_pixbuf (pixbuf); + gtk_widget_set_size_request (child, 110, 70); gtk_flow_box_insert (GTK_FLOW_BOX (bd->flowbox), child, -1); child = gtk_widget_get_parent (child); g_object_set_data_full (G_OBJECT (child), "filename", bd->filename, g_free); @@ -996,8 +995,7 @@ populate_flowbox (GtkWidget *flowbox) pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, 110, 70); gdk_pixbuf_fill (pixbuf, 0xffffffff); - child = gtk_image_new_from_pixbuf (pixbuf); - gtk_widget_show (child); + child = gtk_picture_new_for_pixbuf (pixbuf); gtk_flow_box_insert (GTK_FLOW_BOX (flowbox), child, -1); location = "/usr/share/backgrounds/gnome"; diff --git a/docs/reference/gdk/gdk4-sections.txt b/docs/reference/gdk/gdk4-sections.txt index 82371e38bf..482b7fdbd8 100644 --- a/docs/reference/gdk/gdk4-sections.txt +++ b/docs/reference/gdk/gdk4-sections.txt @@ -774,38 +774,60 @@ gdk_cursor_get_type <SECTION> <TITLE>Drag and Drop</TITLE> <FILE>dnd</FILE> -GdkDragContext +GdkDrag +GdkDrop GdkDragCancelReason gdk_drag_drop_done gdk_drag_begin GdkDragAction GDK_ACTION_ALL -gdk_drag_context_get_display -gdk_drag_context_get_actions -gdk_drag_context_get_suggested_action -gdk_drag_context_get_selected_action -gdk_drag_context_get_formats -gdk_drag_context_get_device -gdk_drag_context_get_drag_surface -gdk_drag_context_set_hotspot +gdk_drag_get_display +gdk_drag_get_actions +gdk_drag_get_suggested_action +gdk_drag_get_selected_action +gdk_drag_get_formats +gdk_drag_get_device +gdk_drag_get_drag_surface +gdk_drag_set_hotspot <SUBSECTION> gdk_drag_action_is_unique +<SUBSECTION> +gdk_drop_get_display +gdk_drop_get_device +gdk_drop_get_surface +gdk_drop_get_formats +gdk_drop_get_actions +gdk_drop_get_drag +gdk_drop_status +gdk_drop_finish +gdk_drop_read_async +gdk_drop_read_finish +gdk_drop_read_value_async +gdk_drop_read_value_finish +gdk_drop_read_text_async +gdk_drop_read_text_finish + <SUBSECTION Standard> -GDK_DRAG_CONTEXT -GDK_TYPE_DRAG_CONTEXT -GDK_IS_DRAG_CONTEXT -GDK_DRAG_CONTEXT_CLASS -GDK_DRAG_CONTEXT_GET_CLASS -GDK_IS_DRAG_CONTEXT_CLASS +GDK_DRAG +GDK_TYPE_DRAG +GDK_IS_DRAG +GDK_DRAG_CLASS +GDK_DRAG_GET_CLASS +GDK_IS_DRAG_CLASS GDK_TYPE_DRAG_ACTION GDK_TYPE_DRAG_PROTOCOL +GDK_TYPE_DROP +GDK_DROP +GDK_IS_DROP <SUBSECTION Private> -GdkDragContextClass -gdk_drag_context_get_type +GdkDragClass +gdk_drag_get_type +GdkDropClass +gdk_drop_get_type </SECTION> <SECTION> diff --git a/docs/reference/gdk/gdk4.types b/docs/reference/gdk/gdk4.types index de343d2abe..2fef32ea30 100644 --- a/docs/reference/gdk/gdk4.types +++ b/docs/reference/gdk/gdk4.types @@ -9,7 +9,8 @@ gdk_device_pad_get_type gdk_device_tool_get_type gdk_display_get_type gdk_display_manager_get_type -gdk_drag_context_get_type +gdk_drag_get_type +gdk_drop_get_type gdk_event_get_type gdk_frame_clock_get_type gdk_gl_context_get_type diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt index a09f54192a..489c838270 100644 --- a/docs/reference/gtk/gtk4-sections.txt +++ b/docs/reference/gtk/gtk4-sections.txt @@ -4912,7 +4912,6 @@ gtk_render_handle gtk_render_layout gtk_render_line gtk_render_option -gtk_render_slider gtk_render_activity gtk_render_icon gtk_render_insertion_cursor @@ -6502,7 +6501,7 @@ gtk_event_controller_motion_get_type <SECTION> <FILE>gtkeventcontrollerkey</FILE> -<TITLE>GtkEventControlerKey</TITLE> +<TITLE>GtkEventControllerKey</TITLE> GtkEventControllerKey gtk_event_controller_key_new diff --git a/docs/reference/gtk/gtk4.types.in b/docs/reference/gtk/gtk4.types.in index 3afd4a2066..5c8f48d67c 100644 --- a/docs/reference/gtk/gtk4.types.in +++ b/docs/reference/gtk/gtk4.types.in @@ -118,6 +118,7 @@ gtk_page_setup_get_type @DISABLE_ON_W32@gtk_page_setup_unix_dialog_get_type gtk_paned_get_type gtk_paper_size_get_type +gtk_picture_get_type gtk_popover_get_type gtk_popover_menu_get_type @DISABLE_ON_W32@gtk_printer_get_type diff --git a/gdk/broadway/gdkdnd-broadway.c b/gdk/broadway/gdkdnd-broadway.c index fecf3b9c04..1db76f43d3 100644 --- a/gdk/broadway/gdkdnd-broadway.c +++ b/gdk/broadway/gdkdnd-broadway.c @@ -24,7 +24,7 @@ #include "config.h" -#include "gdkdndprivate.h" +#include "gdkdragprivate.h" #include "gdkinternals.h" #include "gdkproperty.h" @@ -34,56 +34,56 @@ #include <string.h> -#define GDK_TYPE_BROADWAY_DRAG_CONTEXT (gdk_broadway_drag_context_get_type ()) -#define GDK_BROADWAY_DRAG_CONTEXT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_BROADWAY_DRAG_CONTEXT, GdkBroadwayDragContext)) -#define GDK_BROADWAY_DRAG_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_BROADWAY_DRAG_CONTEXT, GdkBroadwayDragContextClass)) -#define GDK_IS_BROADWAY_DRAG_CONTEXT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_BROADWAY_DRAG_CONTEXT)) -#define GDK_IS_BROADWAY_DRAG_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_BROADWAY_DRAG_CONTEXT)) -#define GDK_BROADWAY_DRAG_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_BROADWAY_DRAG_CONTEXT, GdkBroadwayDragContextClass)) +#define GDK_TYPE_BROADWAY_DRAG (gdk_broadway_drag_get_type ()) +#define GDK_BROADWAY_DRAG(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_BROADWAY_DRAG, GdkBroadwayDrag)) +#define GDK_BROADWAY_DRAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_BROADWAY_DRAG, GdkBroadwayDragClass)) +#define GDK_IS_BROADWAY_DRAG(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_BROADWAY_DRAG)) +#define GDK_IS_BROADWAY_DRAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_BROADWAY_DRAG)) +#define GDK_BROADWAY_DRAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_BROADWAY_DRAG, GdkBroadwayDragClass)) #ifdef GDK_COMPILATION -typedef struct _GdkBroadwayDragContext GdkBroadwayDragContext; +typedef struct _GdkBroadwayDrag GdkBroadwayDrag; #else -typedef GdkDragContext GdkBroadwayDragContext; +typedef GdkDrag GdkBroadwayDrag; #endif -typedef struct _GdkBroadwayDragContextClass GdkBroadwayDragContextClass; +typedef struct _GdkBroadwayDragClass GdkBroadwayDragClass; -GType gdk_broadway_drag_context_get_type (void); +GType gdk_broadway_drag_get_type (void); -struct _GdkBroadwayDragContext { - GdkDragContext context; +struct _GdkBroadwayDrag { + GdkDrag context; }; -struct _GdkBroadwayDragContextClass +struct _GdkBroadwayDragClass { - GdkDragContextClass parent_class; + GdkDragClass parent_class; }; -static void gdk_broadway_drag_context_finalize (GObject *object); +static void gdk_broadway_drag_finalize (GObject *object); static GList *contexts; -G_DEFINE_TYPE (GdkBroadwayDragContext, gdk_broadway_drag_context, GDK_TYPE_DRAG_CONTEXT) +G_DEFINE_TYPE (GdkBroadwayDrag, gdk_broadway_drag, GDK_TYPE_DRAG) static void -gdk_broadway_drag_context_init (GdkBroadwayDragContext *dragcontext) +gdk_broadway_drag_init (GdkBroadwayDrag *dragcontext) { contexts = g_list_prepend (contexts, dragcontext); } static void -gdk_broadway_drag_context_finalize (GObject *object) +gdk_broadway_drag_finalize (GObject *object) { - GdkDragContext *context = GDK_DRAG_CONTEXT (object); + GdkDrag *context = GDK_DRAG (object); contexts = g_list_remove (contexts, context); - G_OBJECT_CLASS (gdk_broadway_drag_context_parent_class)->finalize (object); + G_OBJECT_CLASS (gdk_broadway_drag_parent_class)->finalize (object); } /* Drag Contexts */ -GdkDragContext * +GdkDrag * _gdk_broadway_surface_drag_begin (GdkSurface *surface, GdkDevice *device, GdkContentProvider *content, @@ -91,12 +91,12 @@ _gdk_broadway_surface_drag_begin (GdkSurface *surface, gint dx, gint dy) { - GdkDragContext *new_context; + GdkDrag *new_context; g_return_val_if_fail (surface != NULL, NULL); g_return_val_if_fail (GDK_SURFACE_IS_BROADWAY (surface), NULL); - new_context = g_object_new (GDK_TYPE_BROADWAY_DRAG_CONTEXT, + new_context = g_object_new (GDK_TYPE_BROADWAY_DRAG, "device", device, "content", content, NULL); @@ -105,14 +105,14 @@ _gdk_broadway_surface_drag_begin (GdkSurface *surface, } static void -gdk_broadway_drag_context_drag_drop (GdkDragContext *context, +gdk_broadway_drag_drag_drop (GdkDrag *context, guint32 time) { g_return_if_fail (context != NULL); } static void -gdk_broadway_drag_context_drag_abort (GdkDragContext *context, +gdk_broadway_drag_drag_abort (GdkDrag *context, guint32 time) { g_return_if_fail (context != NULL); @@ -129,13 +129,13 @@ _gdk_broadway_display_init_dnd (GdkDisplay *display) } static void -gdk_broadway_drag_context_class_init (GdkBroadwayDragContextClass *klass) +gdk_broadway_drag_class_init (GdkBroadwayDragClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - GdkDragContextClass *context_class = GDK_DRAG_CONTEXT_CLASS (klass); + GdkDragClass *context_class = GDK_DRAG_CLASS (klass); - object_class->finalize = gdk_broadway_drag_context_finalize; + object_class->finalize = gdk_broadway_drag_finalize; - context_class->drag_abort = gdk_broadway_drag_context_drag_abort; - context_class->drag_drop = gdk_broadway_drag_context_drag_drop; + context_class->drag_abort = gdk_broadway_drag_drag_abort; + context_class->drag_drop = gdk_broadway_drag_drag_drop; } diff --git a/gdk/broadway/gdkprivate-broadway.h b/gdk/broadway/gdkprivate-broadway.h index 737bb9ed8c..11a48a0291 100644 --- a/gdk/broadway/gdkprivate-broadway.h +++ b/gdk/broadway/gdkprivate-broadway.h @@ -46,7 +46,7 @@ void gdk_broadway_surface_set_nodes (GdkSurface *surface, GPtrArray *node_textures); void _gdk_broadway_surface_register_dnd (GdkSurface *surface); -GdkDragContext * _gdk_broadway_surface_drag_begin (GdkSurface *surface, +GdkDrag * _gdk_broadway_surface_drag_begin (GdkSurface *surface, GdkDevice *device, GdkContentProvider *content, GdkDragAction actions, diff --git a/gdk/gdk-autocleanup.h b/gdk/gdk-autocleanup.h index 7d2cc3f733..6ec5aa9ba2 100644 --- a/gdk/gdk-autocleanup.h +++ b/gdk/gdk-autocleanup.h @@ -27,7 +27,7 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkCursor, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkDevice, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkDisplay, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkDisplayManager, g_object_unref) -G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkDragContext, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkDrag, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkDrawContext, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkFrameClock, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkGLContext, g_object_unref) @@ -44,7 +44,7 @@ #include <gdk/gdkdevicetool.h> #include <gdk/gdkdisplay.h> #include <gdk/gdkdisplaymanager.h> -#include <gdk/gdkdnd.h> +#include <gdk/gdkdrag.h> #include <gdk/gdkdrawcontext.h> #include <gdk/gdkdrop.h> #include <gdk/gdkenumtypes.h> diff --git a/gdk/gdkdevicetool.h b/gdk/gdkdevicetool.h index 4954592ea2..66bab7e699 100644 --- a/gdk/gdkdevicetool.h +++ b/gdk/gdkdevicetool.h @@ -47,8 +47,6 @@ typedef struct _GdkDeviceTool GdkDeviceTool; * * Indicates the specific type of tool being used being a tablet. Such as an * airbrush, pencil, etc. - * - * Since: 3.22 */ typedef enum { GDK_DEVICE_TOOL_TYPE_UNKNOWN, diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c index acfa0c13d9..ec8df56bd9 100644 --- a/gdk/gdkdisplay.c +++ b/gdk/gdkdisplay.c @@ -631,8 +631,7 @@ get_current_toplevel (GdkDisplay *display, pointer_surface = _gdk_device_surface_at_position (device, &x, &y, &state, TRUE); if (pointer_surface != NULL && - (GDK_SURFACE_DESTROYED (pointer_surface) || - GDK_SURFACE_TYPE (pointer_surface) == GDK_SURFACE_FOREIGN)) + GDK_SURFACE_DESTROYED (pointer_surface)) pointer_surface = NULL; *x_out = round (x); @@ -1283,14 +1282,12 @@ gdk_display_notify_startup_complete (GdkDisplay *display, /** * gdk_display_get_startup_notification_id: - * @display: (type GdkX11Display): a #GdkDisplay + * @display: a #GdkDisplay * * Gets the startup notification ID for a Wayland display, or %NULL * if no ID has been defined. * * Returns: the startup notification ID for @display, or %NULL - * - * Since: 4.0 */ const gchar * gdk_display_get_startup_notification_id (GdkDisplay *display) diff --git a/gdk/gdkdnd.h b/gdk/gdkdnd.h deleted file mode 100644 index caf79151bb..0000000000 --- a/gdk/gdkdnd.h +++ /dev/null @@ -1,102 +0,0 @@ -/* GDK - The GIMP Drawing Kit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see <http://www.gnu.org/licenses/>. - */ - -/* - * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#ifndef __GDK_DND_H__ -#define __GDK_DND_H__ - -#if !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION) -#error "Only <gdk/gdk.h> can be included directly." -#endif - -#include <gdk/gdktypes.h> -#include <gdk/gdkdevice.h> -#include <gdk/gdkevents.h> - -G_BEGIN_DECLS - -#define GDK_TYPE_DRAG_CONTEXT (gdk_drag_context_get_type ()) -#define GDK_DRAG_CONTEXT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_DRAG_CONTEXT, GdkDragContext)) -#define GDK_IS_DRAG_CONTEXT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_DRAG_CONTEXT)) - -/** - * GdkDragCancelReason: - * @GDK_DRAG_CANCEL_NO_TARGET: There is no suitable drop target. - * @GDK_DRAG_CANCEL_USER_CANCELLED: Drag cancelled by the user - * @GDK_DRAG_CANCEL_ERROR: Unspecified error. - * - * Used in #GdkDragContext to the reason of a cancelled DND operation. - * - * Since: 3.20 - */ -typedef enum { - GDK_DRAG_CANCEL_NO_TARGET, - GDK_DRAG_CANCEL_USER_CANCELLED, - GDK_DRAG_CANCEL_ERROR -} GdkDragCancelReason; - -GDK_AVAILABLE_IN_ALL -GType gdk_drag_context_get_type (void) G_GNUC_CONST; - -GDK_AVAILABLE_IN_ALL -GdkDisplay * gdk_drag_context_get_display (GdkDragContext *context); -GDK_AVAILABLE_IN_ALL -GdkDevice * gdk_drag_context_get_device (GdkDragContext *context); - -GDK_AVAILABLE_IN_ALL -GdkContentFormats *gdk_drag_context_get_formats (GdkDragContext *context); -GDK_AVAILABLE_IN_ALL -GdkDragAction gdk_drag_context_get_actions (GdkDragContext *context); -GDK_AVAILABLE_IN_ALL -GdkDragAction gdk_drag_context_get_suggested_action (GdkDragContext *context); -GDK_AVAILABLE_IN_ALL -GdkDragAction gdk_drag_context_get_selected_action (GdkDragContext *context); - -GDK_AVAILABLE_IN_ALL -gboolean gdk_drag_action_is_unique (GdkDragAction action); - -/* Source side */ - -GDK_AVAILABLE_IN_ALL -GdkDragContext * gdk_drag_begin (GdkSurface *surface, - GdkDevice *device, - GdkContentProvider *content, - GdkDragAction actions, - gint dx, - gint dy); - -GDK_AVAILABLE_IN_ALL -void gdk_drag_drop_done (GdkDragContext *context, - gboolean success); - -GDK_AVAILABLE_IN_ALL -GdkSurface *gdk_drag_context_get_drag_surface (GdkDragContext *context); - -GDK_AVAILABLE_IN_ALL -void gdk_drag_context_set_hotspot (GdkDragContext *context, - gint hot_x, - gint hot_y); - -G_END_DECLS - -#endif /* __GDK_DND_H__ */ diff --git a/gdk/gdkdndprivate.h b/gdk/gdkdndprivate.h deleted file mode 100644 index 0e586ca979..0000000000 --- a/gdk/gdkdndprivate.h +++ /dev/null @@ -1,105 +0,0 @@ -/* GDK - The GIMP Drawing Kit - * Copyright (C) 2010, Red Hat, Inc - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see <http://www.gnu.org/licenses/>. - */ - -#ifndef __GDK_DND_PRIVATE_H__ -#define __GDK_DND_PRIVATE_H__ - -#include "gdkdnd.h" - -G_BEGIN_DECLS - - -#define GDK_DRAG_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_DRAG_CONTEXT, GdkDragContextClass)) -#define GDK_IS_DRAG_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_DRAG_CONTEXT)) -#define GDK_DRAG_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_DRAG_CONTEXT, GdkDragContextClass)) - -typedef struct _GdkDragContextClass GdkDragContextClass; - - -struct _GdkDragContextClass { - GObjectClass parent_class; - - void (*drag_abort) (GdkDragContext *context, - guint32 time_); - void (*drag_drop) (GdkDragContext *context, - guint32 time_); - GdkSurface* (*get_drag_surface) (GdkDragContext *context); - void (*set_hotspot) (GdkDragContext *context, - gint hot_x, - gint hot_y); - void (*drop_done) (GdkDragContext *context, - gboolean success); - - void (*set_cursor) (GdkDragContext *context, - GdkCursor *cursor); - void (*cancel) (GdkDragContext *context, - GdkDragCancelReason reason); - void (*drop_performed) (GdkDragContext *context, - guint32 time); - void (*dnd_finished) (GdkDragContext *context); - - gboolean (*handle_event) (GdkDragContext *context, - const GdkEvent *event); - void (*action_changed) (GdkDragContext *context, - GdkDragAction action); -}; - -struct _GdkDragContext { - GObject parent_instance; - - /*< private >*/ - GdkSurface *source_surface; - GdkSurface *drag_surface; - - GdkContentProvider *content; - GdkDragAction action; - - guint drop_done : 1; /* Whether gdk_drag_drop_done() was performed */ -}; - -void gdk_drag_context_set_cursor (GdkDragContext *context, - GdkCursor *cursor); -void gdk_drag_context_set_actions (GdkDragContext *context, - GdkDragAction actions, - GdkDragAction suggested_action); - -void gdk_drag_context_cancel (GdkDragContext *context, - GdkDragCancelReason reason); -gboolean gdk_drag_context_handle_source_event (GdkEvent *event); -GdkCursor * gdk_drag_get_cursor (GdkDragContext *context, - GdkDragAction action); - -void gdk_drag_abort (GdkDragContext *context, - guint32 time_); -void gdk_drag_drop (GdkDragContext *context, - guint32 time_); - -void gdk_drag_context_write_async (GdkDragContext *context, - const char *mime_type, - GOutputStream *stream, - int io_priority, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -gboolean gdk_drag_context_write_finish (GdkDragContext *context, - GAsyncResult *result, - GError **error); - - -G_END_DECLS - -#endif diff --git a/gdk/gdkdnd.c b/gdk/gdkdrag.c index bf42a561f5..2e8efb8e71 100644 --- a/gdk/gdkdnd.c +++ b/gdk/gdkdrag.c @@ -24,7 +24,7 @@ #include "config.h" -#include "gdkdndprivate.h" +#include "gdkdragprivate.h" #include "gdkdisplay.h" #include "gdksurface.h" #include "gdkintl.h" @@ -35,9 +35,9 @@ #include "gdkenumtypes.h" #include "gdkeventsprivate.h" -typedef struct _GdkDragContextPrivate GdkDragContextPrivate; +typedef struct _GdkDragPrivate GdkDragPrivate; -struct _GdkDragContextPrivate +struct _GdkDragPrivate { GdkDisplay *display; GdkDevice *device; @@ -77,9 +77,9 @@ enum { static GParamSpec *properties[N_PROPERTIES] = { NULL, }; static guint signals[N_SIGNALS] = { 0 }; -static GList *contexts = NULL; +static GList *drags = NULL; -G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GdkDragContext, gdk_drag_context, G_TYPE_OBJECT) +G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GdkDrag, gdk_drag, G_TYPE_OBJECT) /** * SECTION:dnd @@ -98,142 +98,142 @@ G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GdkDragContext, gdk_drag_context, G_TYPE_OB */ /** - * GdkDragContext: + * GdkDrag: * - * The GdkDragContext struct contains only private fields and + * The GdkDrag struct contains only private fields and * should not be accessed directly. */ /** - * gdk_drag_context_get_display: - * @context: a #GdkDragContext + * gdk_drag_get_display: + * @drag: a #GdkDrag * - * Gets the #GdkDisplay that the drag context was created for. + * Gets the #GdkDisplay that the drag object was created for. * * Returns: (transfer none): a #GdkDisplay **/ GdkDisplay * -gdk_drag_context_get_display (GdkDragContext *context) +gdk_drag_get_display (GdkDrag *drag) { - GdkDragContextPrivate *priv = gdk_drag_context_get_instance_private (context); + GdkDragPrivate *priv = gdk_drag_get_instance_private (drag); - g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), NULL); + g_return_val_if_fail (GDK_IS_DRAG (drag), NULL); return priv->display; } /** - * gdk_drag_context_get_formats: - * @context: a #GdkDragContext + * gdk_drag_get_formats: + * @drag: a #GdkDrag * - * Retrieves the formats supported by this context. + * Retrieves the formats supported by this GdkDrag object. * * Returns: (transfer none): a #GdkContentFormats **/ GdkContentFormats * -gdk_drag_context_get_formats (GdkDragContext *context) +gdk_drag_get_formats (GdkDrag *drag) { - GdkDragContextPrivate *priv = gdk_drag_context_get_instance_private (context); + GdkDragPrivate *priv = gdk_drag_get_instance_private (drag); - g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), NULL); + g_return_val_if_fail (GDK_IS_DRAG (drag), NULL); return priv->formats; } /** - * gdk_drag_context_get_actions: - * @context: a #GdkDragContext + * gdk_drag_get_actions: + * @drag: a #GdkDrag * * Determines the bitmask of actions proposed by the source if - * gdk_drag_context_get_suggested_action() returns %GDK_ACTION_ASK. + * gdk_drag_get_suggested_action() returns %GDK_ACTION_ASK. * * Returns: the #GdkDragAction flags **/ GdkDragAction -gdk_drag_context_get_actions (GdkDragContext *context) +gdk_drag_get_actions (GdkDrag *drag) { - GdkDragContextPrivate *priv = gdk_drag_context_get_instance_private (context); + GdkDragPrivate *priv = gdk_drag_get_instance_private (drag); - g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), 0); + g_return_val_if_fail (GDK_IS_DRAG (drag), 0); return priv->actions; } /** - * gdk_drag_context_get_suggested_action: - * @context: a #GdkDragContext + * gdk_drag_get_suggested_action: + * @drag: a #GdkDrag * - * Determines the suggested drag action of the context. + * Determines the suggested drag action of the GdkDrag object. * * Returns: a #GdkDragAction value **/ GdkDragAction -gdk_drag_context_get_suggested_action (GdkDragContext *context) +gdk_drag_get_suggested_action (GdkDrag *drag) { - GdkDragContextPrivate *priv = gdk_drag_context_get_instance_private (context); + GdkDragPrivate *priv = gdk_drag_get_instance_private (drag); - g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), 0); + g_return_val_if_fail (GDK_IS_DRAG (drag), 0); return priv->suggested_action; } /** - * gdk_drag_context_get_selected_action: - * @context: a #GdkDragContext + * gdk_drag_get_selected_action: + * @drag: a #GdkDrag * * Determines the action chosen by the drag destination. * * Returns: a #GdkDragAction value **/ GdkDragAction -gdk_drag_context_get_selected_action (GdkDragContext *context) +gdk_drag_get_selected_action (GdkDrag *drag) { - g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), 0); + g_return_val_if_fail (GDK_IS_DRAG (drag), 0); - return context->action; + return drag->action; } /** - * gdk_drag_context_get_device: - * @context: a #GdkDragContext + * gdk_drag_get_device: + * @drag: a #GdkDrag * - * Returns the #GdkDevice associated to the drag context. + * Returns the #GdkDevice associated to the GdkDrag object. * - * Returns: (transfer none): The #GdkDevice associated to @context. + * Returns: (transfer none): The #GdkDevice associated to @drag. **/ GdkDevice * -gdk_drag_context_get_device (GdkDragContext *context) +gdk_drag_get_device (GdkDrag *drag) { - GdkDragContextPrivate *priv = gdk_drag_context_get_instance_private (context); + GdkDragPrivate *priv = gdk_drag_get_instance_private (drag); - g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), NULL); + g_return_val_if_fail (GDK_IS_DRAG (drag), NULL); return priv->device; } static void -gdk_drag_context_init (GdkDragContext *context) +gdk_drag_init (GdkDrag *drag) { - contexts = g_list_prepend (contexts, context); + drags = g_list_prepend (drags, drag); } static void -gdk_drag_context_set_property (GObject *gobject, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +gdk_drag_set_property (GObject *gobject, + guint prop_id, + const GValue *value, + GParamSpec *pspec) { - GdkDragContext *context = GDK_DRAG_CONTEXT (gobject); - GdkDragContextPrivate *priv = gdk_drag_context_get_instance_private (context); + GdkDrag *drag = GDK_DRAG (gobject); + GdkDragPrivate *priv = gdk_drag_get_instance_private (drag); switch (prop_id) { case PROP_CONTENT: - context->content = g_value_dup_object (value); - if (context->content) + drag->content = g_value_dup_object (value); + if (drag->content) { g_assert (priv->formats == NULL); - priv->formats = gdk_content_provider_ref_formats (context->content); + priv->formats = gdk_content_provider_ref_formats (drag->content); } break; @@ -267,18 +267,18 @@ gdk_drag_context_set_property (GObject *gobject, } static void -gdk_drag_context_get_property (GObject *gobject, - guint prop_id, - GValue *value, - GParamSpec *pspec) +gdk_drag_get_property (GObject *gobject, + guint prop_id, + GValue *value, + GParamSpec *pspec) { - GdkDragContext *context = GDK_DRAG_CONTEXT (gobject); - GdkDragContextPrivate *priv = gdk_drag_context_get_instance_private (context); + GdkDrag *drag = GDK_DRAG (gobject); + GdkDragPrivate *priv = gdk_drag_get_instance_private (drag); switch (prop_id) { case PROP_CONTENT: - g_value_set_object (value, context->content); + g_value_set_object (value, drag->content); break; case PROP_DEVICE: @@ -300,36 +300,35 @@ gdk_drag_context_get_property (GObject *gobject, } static void -gdk_drag_context_finalize (GObject *object) +gdk_drag_finalize (GObject *object) { - GdkDragContext *context = GDK_DRAG_CONTEXT (object); - GdkDragContextPrivate *priv = gdk_drag_context_get_instance_private (context); + GdkDrag *drag = GDK_DRAG (object); + GdkDragPrivate *priv = gdk_drag_get_instance_private (drag); - contexts = g_list_remove (contexts, context); + drags = g_list_remove (drags, drag); - g_clear_object (&context->content); + g_clear_object (&drag->content); g_clear_pointer (&priv->formats, gdk_content_formats_unref); - if (context->source_surface) - g_object_unref (context->source_surface); + if (drag->source_surface) + g_object_unref (drag->source_surface); - G_OBJECT_CLASS (gdk_drag_context_parent_class)->finalize (object); + G_OBJECT_CLASS (gdk_drag_parent_class)->finalize (object); } static void -gdk_drag_context_class_init (GdkDragContextClass *klass) +gdk_drag_class_init (GdkDragClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - object_class->get_property = gdk_drag_context_get_property; - object_class->set_property = gdk_drag_context_set_property; - object_class->finalize = gdk_drag_context_finalize; + object_class->get_property = gdk_drag_get_property; + object_class->set_property = gdk_drag_set_property; + object_class->finalize = gdk_drag_finalize; /** - * GdkDragContext:content: + * GdkDrag:content: * - * The #GdkContentProvider or %NULL if the context is not a source-side - * context. + * The #GdkContentProvider. */ properties[PROP_CONTENT] = g_param_spec_object ("content", @@ -342,7 +341,7 @@ gdk_drag_context_class_init (GdkDragContextClass *klass) G_PARAM_EXPLICIT_NOTIFY); /** - * GdkDragContext:device: + * GdkDrag:device: * * The #GdkDevice that is performing the drag. */ @@ -357,9 +356,9 @@ gdk_drag_context_class_init (GdkDragContextClass *klass) G_PARAM_EXPLICIT_NOTIFY); /** - * GdkDragContext:display: + * GdkDrag:display: * - * The #GdkDisplay that the drag context belongs to. + * The #GdkDisplay that the drag belongs to. */ properties[PROP_DISPLAY] = g_param_spec_object ("display", @@ -371,9 +370,9 @@ gdk_drag_context_class_init (GdkDragContextClass *klass) G_PARAM_EXPLICIT_NOTIFY); /** - * GdkDragContext:formats: + * GdkDrag:formats: * - * The possible formats that the context can provide its data in. + * The possible formats that the drag can provide its data in. */ properties[PROP_FORMATS] = g_param_spec_boxed ("formats", @@ -386,65 +385,65 @@ gdk_drag_context_class_init (GdkDragContextClass *klass) G_PARAM_EXPLICIT_NOTIFY); /** - * GdkDragContext::cancel: - * @context: The object on which the signal is emitted - * @reason: The reason the context was cancelled + * GdkDrag::cancel: + * @drag: The object on which the signal is emitted + * @reason: The reason the drag was cancelled * - * The drag and drop operation was cancelled. + * The drag operation was cancelled. */ signals[CANCEL] = g_signal_new (g_intern_static_string ("cancel"), G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GdkDragContextClass, cancel), + G_STRUCT_OFFSET (GdkDragClass, cancel), NULL, NULL, g_cclosure_marshal_VOID__ENUM, G_TYPE_NONE, 1, GDK_TYPE_DRAG_CANCEL_REASON); /** - * GdkDragContext::drop-performed: - * @context: The object on which the signal is emitted + * GdkDrag::drop-performed: + * @drag: The object on which the signal is emitted * - * The drag and drop operation was performed on an accepting client. + * The drag operation was performed on an accepting client. */ signals[DROP_PERFORMED] = g_signal_new (g_intern_static_string ("drop-performed"), G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GdkDragContextClass, drop_performed), + G_STRUCT_OFFSET (GdkDragClass, drop_performed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); /** - * GdkDragContext::dnd-finished: - * @context: The object on which the signal is emitted + * GdkDrag::dnd-finished: + * @drag: The object on which the signal is emitted * - * The drag and drop operation was finished, the drag destination - * finished reading all data. The drag source can now free all - * miscellaneous data. + * The drag operation was finished, the destination + * finished reading all data. The drag object can now + * free all miscellaneous data. */ signals[DND_FINISHED] = g_signal_new (g_intern_static_string ("dnd-finished"), G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GdkDragContextClass, dnd_finished), + G_STRUCT_OFFSET (GdkDragClass, dnd_finished), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); /** - * GdkDragContext::action-changed: - * @context: The object on which the signal is emitted + * GdkDrag::action-changed: + * @drag: The object on which the signal is emitted * @action: The action currently chosen * - * A new action is being chosen for the drag and drop operation. + * A new action is being chosen for the drag operation. */ signals[ACTION_CHANGED] = g_signal_new (g_intern_static_string ("action-changed"), G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GdkDragContextClass, action_changed), + G_STRUCT_OFFSET (GdkDragClass, action_changed), NULL, NULL, g_cclosure_marshal_VOID__FLAGS, G_TYPE_NONE, 1, GDK_TYPE_DRAG_ACTION); @@ -454,7 +453,7 @@ gdk_drag_context_class_init (GdkDragContextClass *klass) /* * gdk_drag_abort: - * @context: a #GdkDragContext + * @drag: a #GdkDrag * @time_: the timestamp for this operation * * Aborts a drag without dropping. @@ -462,17 +461,17 @@ gdk_drag_context_class_init (GdkDragContextClass *klass) * This function is called by the drag source. */ void -gdk_drag_abort (GdkDragContext *context, - guint32 time_) +gdk_drag_abort (GdkDrag *drag, + guint32 time_) { - g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); + g_return_if_fail (GDK_IS_DRAG (drag)); - GDK_DRAG_CONTEXT_GET_CLASS (context)->drag_abort (context, time_); + GDK_DRAG_GET_CLASS (drag)->drag_abort (drag, time_); } /* * gdk_drag_drop: - * @context: a #GdkDragContext + * @drag: a #GdkDrag * @time_: the timestamp for this operation * * Drops on the current destination. @@ -480,18 +479,18 @@ gdk_drag_abort (GdkDragContext *context, * This function is called by the drag source. */ void -gdk_drag_drop (GdkDragContext *context, - guint32 time_) +gdk_drag_drop (GdkDrag *drag, + guint32 time_) { - g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); + g_return_if_fail (GDK_IS_DRAG (drag)); - GDK_DRAG_CONTEXT_GET_CLASS (context)->drag_drop (context, time_); + GDK_DRAG_GET_CLASS (drag)->drag_drop (drag, time_); } static void -gdk_drag_context_write_done (GObject *content, - GAsyncResult *result, - gpointer task) +gdk_drag_write_done (GObject *content, + GAsyncResult *result, + gpointer task) { GError *error = NULL; @@ -504,9 +503,9 @@ gdk_drag_context_write_done (GObject *content, } static void -gdk_drag_context_write_serialize_done (GObject *content, - GAsyncResult *result, - gpointer task) +gdk_drag_write_serialize_done (GObject *content, + GAsyncResult *result, + gpointer task) { GError *error = NULL; @@ -519,39 +518,39 @@ gdk_drag_context_write_serialize_done (GObject *content, } void -gdk_drag_context_write_async (GdkDragContext *context, - const char *mime_type, - GOutputStream *stream, - int io_priority, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) +gdk_drag_write_async (GdkDrag *drag, + const char *mime_type, + GOutputStream *stream, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) { GdkContentFormats *formats, *mime_formats; GTask *task; GType gtype; - g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); - g_return_if_fail (context->content); + g_return_if_fail (GDK_IS_DRAG (drag)); + g_return_if_fail (drag->content); g_return_if_fail (mime_type != NULL); g_return_if_fail (mime_type == g_intern_string (mime_type)); g_return_if_fail (G_IS_OUTPUT_STREAM (stream)); g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable)); g_return_if_fail (callback != NULL); - task = g_task_new (context, cancellable, callback, user_data); + task = g_task_new (drag, cancellable, callback, user_data); g_task_set_priority (task, io_priority); - g_task_set_source_tag (task, gdk_drag_context_write_async); + g_task_set_source_tag (task, gdk_drag_write_async); - formats = gdk_content_provider_ref_formats (context->content); + formats = gdk_content_provider_ref_formats (drag->content); if (gdk_content_formats_contain_mime_type (formats, mime_type)) { - gdk_content_provider_write_mime_type_async (context->content, + gdk_content_provider_write_mime_type_async (drag->content, mime_type, stream, io_priority, cancellable, - gdk_drag_context_write_done, + gdk_drag_write_done, task); gdk_content_formats_unref (formats); return; @@ -568,14 +567,14 @@ gdk_drag_context_write_async (GdkDragContext *context, g_assert (gtype != G_TYPE_INVALID); g_value_init (&value, gtype); - if (gdk_content_provider_get_value (context->content, &value, &error)) + if (gdk_content_provider_get_value (drag->content, &value, &error)) { gdk_content_serialize_async (stream, mime_type, &value, io_priority, cancellable, - gdk_drag_context_write_serialize_done, + gdk_drag_write_serialize_done, g_object_ref (task)); } else @@ -597,54 +596,54 @@ gdk_drag_context_write_async (GdkDragContext *context, } gboolean -gdk_drag_context_write_finish (GdkDragContext *context, - GAsyncResult *result, - GError **error) +gdk_drag_write_finish (GdkDrag *drag, + GAsyncResult *result, + GError **error) { - g_return_val_if_fail (g_task_is_valid (result, context), FALSE); - g_return_val_if_fail (g_task_get_source_tag (G_TASK (result)) == gdk_drag_context_write_async, FALSE); + g_return_val_if_fail (g_task_is_valid (result, drag), FALSE); + g_return_val_if_fail (g_task_get_source_tag (G_TASK (result)) == gdk_drag_write_async, FALSE); return g_task_propagate_boolean (G_TASK (result), error); } void -gdk_drag_context_set_actions (GdkDragContext *context, - GdkDragAction actions, - GdkDragAction suggested_action) +gdk_drag_set_actions (GdkDrag *drag, + GdkDragAction actions, + GdkDragAction suggested_action) { - GdkDragContextPrivate *priv = gdk_drag_context_get_instance_private (context); + GdkDragPrivate *priv = gdk_drag_get_instance_private (drag); priv->actions = actions; priv->suggested_action = suggested_action; } /** - * gdk_drag_context_get_drag_surface: - * @context: a #GdkDragContext + * gdk_drag_get_drag_surface: + * @drag: a #GdkDrag * * Returns the surface on which the drag icon should be rendered * during the drag operation. Note that the surface may not be * available until the drag operation has begun. GDK will move * the surface in accordance with the ongoing drag operation. - * The surface is owned by @context and will be destroyed when + * The surface is owned by @drag and will be destroyed when * the drag operation is over. * * Returns: (nullable) (transfer none): the drag surface, or %NULL */ GdkSurface * -gdk_drag_context_get_drag_surface (GdkDragContext *context) +gdk_drag_get_drag_surface (GdkDrag *drag) { - g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), NULL); + g_return_val_if_fail (GDK_IS_DRAG (drag), NULL); - if (GDK_DRAG_CONTEXT_GET_CLASS (context)->get_drag_surface) - return GDK_DRAG_CONTEXT_GET_CLASS (context)->get_drag_surface (context); + if (GDK_DRAG_GET_CLASS (drag)->get_drag_surface) + return GDK_DRAG_GET_CLASS (drag)->get_drag_surface (drag); return NULL; } /** - * gdk_drag_context_set_hotspot: - * @context: a #GdkDragContext + * gdk_drag_set_hotspot: + * @drag: a #GdkDrag * @hot_x: x coordinate of the drag surface hotspot * @hot_y: y coordinate of the drag surface hotspot * @@ -653,19 +652,19 @@ gdk_drag_context_get_drag_surface (GdkDragContext *context) * top left corner of the drag surface. */ void -gdk_drag_context_set_hotspot (GdkDragContext *context, - gint hot_x, - gint hot_y) +gdk_drag_set_hotspot (GdkDrag *drag, + gint hot_x, + gint hot_y) { - g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); + g_return_if_fail (GDK_IS_DRAG (drag)); - if (GDK_DRAG_CONTEXT_GET_CLASS (context)->set_hotspot) - GDK_DRAG_CONTEXT_GET_CLASS (context)->set_hotspot (context, hot_x, hot_y); + if (GDK_DRAG_GET_CLASS (drag)->set_hotspot) + GDK_DRAG_GET_CLASS (drag)->set_hotspot (drag, hot_x, hot_y); } /** * gdk_drag_drop_done: - * @context: a #GdkDragContext + * @drag: a #GdkDrag * @success: whether the drag was ultimatively successful * * Inform GDK if the drop ended successfully. Passing %FALSE @@ -673,60 +672,60 @@ gdk_drag_context_set_hotspot (GdkDragContext *context, * * This function is called by the drag source, and should * be the last call before dropping the reference to the - * @context. + * @drag. * - * The #GdkDragContext will only take the first gdk_drag_drop_done() + * The #GdkDrag will only take the first gdk_drag_drop_done() * call as effective, if this function is called multiple times, * all subsequent calls will be ignored. */ void -gdk_drag_drop_done (GdkDragContext *context, - gboolean success) +gdk_drag_drop_done (GdkDrag *drag, + gboolean success) { - g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); + g_return_if_fail (GDK_IS_DRAG (drag)); - if (context->drop_done) + if (drag->drop_done) return; - context->drop_done = TRUE; + drag->drop_done = TRUE; - if (GDK_DRAG_CONTEXT_GET_CLASS (context)->drop_done) - GDK_DRAG_CONTEXT_GET_CLASS (context)->drop_done (context, success); + if (GDK_DRAG_GET_CLASS (drag)->drop_done) + GDK_DRAG_GET_CLASS (drag)->drop_done (drag, success); } void -gdk_drag_context_set_cursor (GdkDragContext *context, - GdkCursor *cursor) +gdk_drag_set_cursor (GdkDrag *drag, + GdkCursor *cursor) { - g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); + g_return_if_fail (GDK_IS_DRAG (drag)); - if (GDK_DRAG_CONTEXT_GET_CLASS (context)->set_cursor) - GDK_DRAG_CONTEXT_GET_CLASS (context)->set_cursor (context, cursor); + if (GDK_DRAG_GET_CLASS (drag)->set_cursor) + GDK_DRAG_GET_CLASS (drag)->set_cursor (drag, cursor); } void -gdk_drag_context_cancel (GdkDragContext *context, - GdkDragCancelReason reason) +gdk_drag_cancel (GdkDrag *drag, + GdkDragCancelReason reason) { - g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); + g_return_if_fail (GDK_IS_DRAG (drag)); - g_signal_emit (context, signals[CANCEL], 0, reason); + g_signal_emit (drag, signals[CANCEL], 0, reason); } gboolean -gdk_drag_context_handle_source_event (GdkEvent *event) +gdk_drag_handle_source_event (GdkEvent *event) { - GdkDragContext *context; + GdkDrag *drag; GList *l; - for (l = contexts; l; l = l->next) + for (l = drags; l; l = l->next) { - context = l->data; + drag = l->data; - if (!GDK_DRAG_CONTEXT_GET_CLASS (context)->handle_event) + if (!GDK_DRAG_GET_CLASS (drag)->handle_event) continue; - if (GDK_DRAG_CONTEXT_GET_CLASS (context)->handle_event (context, event)) + if (GDK_DRAG_GET_CLASS (drag)->handle_event (drag, event)) return TRUE; } @@ -734,8 +733,8 @@ gdk_drag_context_handle_source_event (GdkEvent *event) } GdkCursor * -gdk_drag_get_cursor (GdkDragContext *context, - GdkDragAction action) +gdk_drag_get_cursor (GdkDrag *drag, + GdkDragAction action) { gint i; diff --git a/gdk/gdkdrag.h b/gdk/gdkdrag.h new file mode 100644 index 0000000000..dd24c72fb1 --- /dev/null +++ b/gdk/gdkdrag.h @@ -0,0 +1,98 @@ +/* GDK - The GIMP Drawing Kit + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + +/* + * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GTK+ Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GTK+ at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __GDK_DND_H__ +#define __GDK_DND_H__ + +#if !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION) +#error "Only <gdk/gdk.h> can be included directly." +#endif + +#include <gdk/gdktypes.h> +#include <gdk/gdkdevice.h> +#include <gdk/gdkevents.h> + +G_BEGIN_DECLS + +#define GDK_TYPE_DRAG (gdk_drag_get_type ()) +#define GDK_DRAG(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_DRAG, GdkDrag)) +#define GDK_IS_DRAG(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_DRAG)) + +/** + * GdkDragCancelReason: + * @GDK_DRAG_CANCEL_NO_TARGET: There is no suitable drop target. + * @GDK_DRAG_CANCEL_USER_CANCELLED: Drag cancelled by the user + * @GDK_DRAG_CANCEL_ERROR: Unspecified error. + * + * Used in #GdkDrag to the reason of a cancelled DND operation. + */ +typedef enum { + GDK_DRAG_CANCEL_NO_TARGET, + GDK_DRAG_CANCEL_USER_CANCELLED, + GDK_DRAG_CANCEL_ERROR +} GdkDragCancelReason; + +GDK_AVAILABLE_IN_ALL +GType gdk_drag_get_type (void) G_GNUC_CONST; + +GDK_AVAILABLE_IN_ALL +GdkDisplay * gdk_drag_get_display (GdkDrag *drag); +GDK_AVAILABLE_IN_ALL +GdkDevice * gdk_drag_get_device (GdkDrag *drag); + +GDK_AVAILABLE_IN_ALL +GdkContentFormats *gdk_drag_get_formats (GdkDrag *drag); +GDK_AVAILABLE_IN_ALL +GdkDragAction gdk_drag_get_actions (GdkDrag *drag); +GDK_AVAILABLE_IN_ALL +GdkDragAction gdk_drag_get_suggested_action (GdkDrag *drag); +GDK_AVAILABLE_IN_ALL +GdkDragAction gdk_drag_get_selected_action (GdkDrag *drag); + +GDK_AVAILABLE_IN_ALL +gboolean gdk_drag_action_is_unique (GdkDragAction action); + +GDK_AVAILABLE_IN_ALL +GdkDrag * gdk_drag_begin (GdkSurface *surface, + GdkDevice *device, + GdkContentProvider *content, + GdkDragAction actions, + gint dx, + gint dy); + +GDK_AVAILABLE_IN_ALL +void gdk_drag_drop_done (GdkDrag *drag, + gboolean success); + +GDK_AVAILABLE_IN_ALL +GdkSurface *gdk_drag_get_drag_surface (GdkDrag *drag); + +GDK_AVAILABLE_IN_ALL +void gdk_drag_set_hotspot (GdkDrag *drag, + gint hot_x, + gint hot_y); + +G_END_DECLS + +#endif /* __GDK_DND_H__ */ diff --git a/gdk/gdkdragprivate.h b/gdk/gdkdragprivate.h new file mode 100644 index 0000000000..01a87ef632 --- /dev/null +++ b/gdk/gdkdragprivate.h @@ -0,0 +1,105 @@ +/* GDK - The GIMP Drawing Kit + * Copyright (C) 2010, Red Hat, Inc + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef __GDK_DND_PRIVATE_H__ +#define __GDK_DND_PRIVATE_H__ + +#include "gdkdrag.h" + +G_BEGIN_DECLS + + +#define GDK_DRAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_DRAG, GdkDragClass)) +#define GDK_IS_DRAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_DRAG)) +#define GDK_DRAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_DRAG, GdkDragClass)) + +typedef struct _GdkDragClass GdkDragClass; + + +struct _GdkDragClass { + GObjectClass parent_class; + + void (*drag_abort) (GdkDrag *drag, + guint32 time_); + void (*drag_drop) (GdkDrag *drag, + guint32 time_); + GdkSurface* (*get_drag_surface) (GdkDrag *drag); + void (*set_hotspot) (GdkDrag *drag, + gint hot_x, + gint hot_y); + void (*drop_done) (GdkDrag *drag, + gboolean success); + + void (*set_cursor) (GdkDrag *drag, + GdkCursor *cursor); + void (*cancel) (GdkDrag *drag, + GdkDragCancelReason reason); + void (*drop_performed) (GdkDrag *drag, + guint32 time); + void (*dnd_finished) (GdkDrag *drag); + + gboolean (*handle_event) (GdkDrag *drag, + const GdkEvent *event); + void (*action_changed) (GdkDrag *drag, + GdkDragAction action); +}; + +struct _GdkDrag { + GObject parent_instance; + + /*< private >*/ + GdkSurface *source_surface; + GdkSurface *drag_surface; + + GdkContentProvider *content; + GdkDragAction action; + + guint drop_done : 1; /* Whether gdk_drag_drop_done() was performed */ +}; + +void gdk_drag_set_cursor (GdkDrag *drag, + GdkCursor *cursor); +void gdk_drag_set_actions (GdkDrag *drag, + GdkDragAction actions, + GdkDragAction suggested_action); + +void gdk_drag_cancel (GdkDrag *drag, + GdkDragCancelReason reason); +gboolean gdk_drag_handle_source_event (GdkEvent *event); +GdkCursor * gdk_drag_get_cursor (GdkDrag *drag, + GdkDragAction action); + +void gdk_drag_abort (GdkDrag *drag, + guint32 time_); +void gdk_drag_drop (GdkDrag *drag, + guint32 time_); + +void gdk_drag_write_async (GdkDrag *drag, + const char *mime_type, + GOutputStream *stream, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +gboolean gdk_drag_write_finish (GdkDrag *drag, + GAsyncResult *result, + GError **error); + + +G_END_DECLS + +#endif diff --git a/gdk/gdkdrop.c b/gdk/gdkdrop.c index bdcc3866d0..03bc1e2485 100644 --- a/gdk/gdkdrop.c +++ b/gdk/gdkdrop.c @@ -38,7 +38,7 @@ typedef struct _GdkDropPrivate GdkDropPrivate; struct _GdkDropPrivate { GdkDevice *device; - GdkDragContext *drag; + GdkDrag *drag; GdkContentFormats *formats; GdkSurface *surface; GdkDragAction actions; @@ -78,7 +78,7 @@ gdk_drop_read_local_write_done (GObject *drag, gpointer stream) { /* we don't care about the error, we just want to clean up */ - gdk_drag_context_write_finish (GDK_DRAG_CONTEXT (drag), result, NULL); + gdk_drag_write_finish (GDK_DRAG (drag), result, NULL); /* XXX: Do we need to close_async() here? */ g_output_stream_close (stream, NULL, NULL); @@ -122,7 +122,7 @@ gdk_drop_read_local_async (GdkDrop *self, stream = gdk_pipe_io_stream_new (); output_stream = g_io_stream_get_output_stream (stream); - gdk_drag_context_write_async (priv->drag, + gdk_drag_write_async (priv->drag, mime_type, output_stream, io_priority, @@ -321,7 +321,7 @@ gdk_drop_class_init (GdkDropClass *klass) g_param_spec_object ("drag", "Drag", "The drag that initiated this drop", - GDK_TYPE_DRAG_CONTEXT, + GDK_TYPE_DRAG, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS | @@ -492,7 +492,7 @@ gdk_drop_set_actions (GdkDrop *self, * * Returns: (transfer none) (nullable): the corresponding #GdkDrag **/ -GdkDragContext * +GdkDrag * gdk_drop_get_drag (GdkDrop *self) { GdkDropPrivate *priv = gdk_drop_get_instance_private (self); diff --git a/gdk/gdkdrop.h b/gdk/gdkdrop.h index 43daf94b1d..e2f26e1822 100644 --- a/gdk/gdkdrop.h +++ b/gdk/gdkdrop.h @@ -50,7 +50,7 @@ GdkContentFormats * gdk_drop_get_formats (GdkDrop GDK_AVAILABLE_IN_ALL GdkDragAction gdk_drop_get_actions (GdkDrop *self); GDK_AVAILABLE_IN_ALL -GdkDragContext * gdk_drop_get_drag (GdkDrop *self); +GdkDrag * gdk_drop_get_drag (GdkDrop *self); GDK_AVAILABLE_IN_ALL void gdk_drop_status (GdkDrop *self, @@ -83,12 +83,12 @@ const GValue * gdk_drop_read_value_finish (GdkDrop GAsyncResult *result, GError **error); GDK_AVAILABLE_IN_ALL -void gdk_drop_read_text_async (GdkDrop *drop, +void gdk_drop_read_text_async (GdkDrop *self, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); GDK_AVAILABLE_IN_ALL -char * gdk_drop_read_text_finish (GdkDrop *drop, +char * gdk_drop_read_text_finish (GdkDrop *self, GAsyncResult *result, GError **error); diff --git a/gdk/gdkevents.c b/gdk/gdkevents.c index 272fe4429f..e648110212 100644 --- a/gdk/gdkevents.c +++ b/gdk/gdkevents.c @@ -28,7 +28,7 @@ #include "gdkeventsprivate.h" #include "gdkinternals.h" #include "gdkdisplayprivate.h" -#include "gdkdndprivate.h" +#include "gdkdragprivate.h" #include "gdkdropprivate.h" #include "gdk-private.h" @@ -165,7 +165,7 @@ gdk_event_class_init (GdkEventClass *klass) void _gdk_event_emit (GdkEvent *event) { - if (gdk_drag_context_handle_source_event (event)) + if (gdk_drag_handle_source_event (event)) return; if (_gdk_event_func) @@ -2504,8 +2504,6 @@ gdk_event_get_axes (GdkEvent *event, * * Returns: (transfer container) (element-type GdkTimeCoord) (nullable): a list * of time and coordinates - * - * Since: 3.94 */ GList * gdk_event_get_motion_history (const GdkEvent *event) diff --git a/gdk/gdkevents.h b/gdk/gdkevents.h index a43e7b4394..f496502ad2 100644 --- a/gdk/gdkevents.h +++ b/gdk/gdkevents.h @@ -31,7 +31,7 @@ #include <gdk/gdkversionmacros.h> #include <gdk/gdktypes.h> -#include <gdk/gdkdnd.h> +#include <gdk/gdkdrag.h> #include <gdk/gdkdevice.h> #include <gdk/gdkdevicetool.h> @@ -67,8 +67,6 @@ G_BEGIN_DECLS * * Use this macro as the return value for continuing the propagation of * an event handler. - * - * Since: 3.4 */ #define GDK_EVENT_PROPAGATE (FALSE) @@ -77,8 +75,6 @@ G_BEGIN_DECLS * * Use this macro as the return value for stopping the propagation of * an event handler. - * - * Since: 3.4 */ #define GDK_EVENT_STOP (TRUE) @@ -87,8 +83,6 @@ G_BEGIN_DECLS * * The primary button. This is typically the left mouse button, or the * right button in a left-handed setup. - * - * Since: 3.4 */ #define GDK_BUTTON_PRIMARY (1) @@ -96,8 +90,6 @@ G_BEGIN_DECLS * GDK_BUTTON_MIDDLE: * * The middle button. - * - * Since: 3.4 */ #define GDK_BUTTON_MIDDLE (2) @@ -106,8 +98,6 @@ G_BEGIN_DECLS * * The secondary button. This is typically the right mouse button, or the * left button in a left-handed setup. - * - * Since: 3.4 */ #define GDK_BUTTON_SECONDARY (3) @@ -291,7 +281,7 @@ typedef enum * @GDK_SCROLL_LEFT: the surface is scrolled to the left. * @GDK_SCROLL_RIGHT: the surface is scrolled to the right. * @GDK_SCROLL_SMOOTH: the scrolling is determined by the delta values - * in scroll events. See gdk_event_get_scroll_deltas(). Since: 3.4 + * in scroll events. See gdk_event_get_scroll_deltas() * * Specifies the direction for scroll events. */ diff --git a/gdk/gdkeventsprivate.h b/gdk/gdkeventsprivate.h index d79beab255..a7ab6a88ab 100644 --- a/gdk/gdkeventsprivate.h +++ b/gdk/gdkeventsprivate.h @@ -26,7 +26,7 @@ #define __GDK_EVENTS_PRIVATE_H__ #include <gdk/gdktypes.h> -#include <gdk/gdkdnd.h> +#include <gdk/gdkdrag.h> #include <gdk/gdkdevice.h> #include <gdk/gdkdevicetool.h> @@ -276,7 +276,7 @@ struct _GdkEventScroll * @hardware_keycode: the raw code of the key that was pressed or released. * @group: the keyboard group. * @is_modifier: a flag that indicates if @hardware_keycode is mapped to a - * modifier. Since 2.10 + * modifier * * Describes a key press or key release event. */ @@ -414,8 +414,6 @@ struct _GdkEventProximity * is unmapped), or if the same application grabs the pointer or keyboard * again. Note that implicit grabs (which are initiated by button presses) * can also cause #GdkEventGrabBroken events. - * - * Since: 2.8 */ struct _GdkEventGrabBroken { GdkEventAny any; @@ -536,8 +534,6 @@ struct _GdkEventTouchpadPinch { * device may have different current modes. * * Generated during %GDK_SOURCE_TABLET_PAD button presses and releases. - * - * Since: 3.22 */ struct _GdkEventPadButton { GdkEventAny any; @@ -562,8 +558,6 @@ struct _GdkEventPadButton { * @value: The current value for the given axis. * * Generated during %GDK_SOURCE_TABLET_PAD interaction with tactile sensors. - * - * Since: 3.22 */ struct _GdkEventPadAxis { GdkEventAny any; @@ -587,8 +581,6 @@ struct _GdkEventPadAxis { * device may have different current modes. * * Generated during %GDK_SOURCE_TABLET_PAD mode switches in a group. - * - * Since: 3.22 */ struct _GdkEventPadGroupMode { GdkEventAny any; diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h index 801af3793f..d1a91f9c25 100644 --- a/gdk/gdkframeclock.h +++ b/gdk/gdkframeclock.h @@ -58,8 +58,6 @@ typedef struct _GdkFrameClockClass GdkFrameClockClass; * #GdkFrameClockPhase is used to represent the different paint clock * phases that can be requested. The elements of the enumeration * correspond to the signals of #GdkFrameClock. - * - * Since: 3.8 **/ typedef enum { GDK_FRAME_CLOCK_PHASE_NONE = 0, diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h index f77ed09e6f..69b5f844f1 100644 --- a/gdk/gdkinternals.h +++ b/gdk/gdkinternals.h @@ -32,7 +32,7 @@ #include "gdkdisplay.h" #include "gdkeventsprivate.h" #include "gdkenumtypes.h" -#include "gdkdndprivate.h" +#include "gdkdragprivate.h" G_BEGIN_DECLS diff --git a/gdk/gdkmonitor.h b/gdk/gdkmonitor.h index fe6836525e..79fd434660 100644 --- a/gdk/gdkmonitor.h +++ b/gdk/gdkmonitor.h @@ -50,8 +50,6 @@ typedef struct _GdkMonitorClass GdkMonitorClass; * * This enumeration describes how the red, green and blue components * of physical pixels on an output device are laid out. - * - * Since: 3.22 */ typedef enum { GDK_SUBPIXEL_LAYOUT_UNKNOWN, diff --git a/gdk/gdkseat.h b/gdk/gdkseat.h index bb0eb069f2..14d7f83a63 100644 --- a/gdk/gdkseat.h +++ b/gdk/gdkseat.h @@ -47,8 +47,6 @@ G_BEGIN_DECLS * @GDK_SEAT_CAPABILITY_ALL: The union of all capabilities * * Flags describing the seat capabilities. - * - * Since: 3.20 */ typedef enum { GDK_SEAT_CAPABILITY_NONE = 0, @@ -71,8 +69,6 @@ typedef enum { * grabbed. A typical action would be ensuring the surface is * visible, although there's room for other initialization * actions. - * - * Since: 3.20 */ typedef void (* GdkSeatGrabPrepareFunc) (GdkSeat *seat, GdkSurface *surface, diff --git a/gdk/gdksurface.c b/gdk/gdksurface.c index 27d7b3cb95..7348ce1fe8 100644 --- a/gdk/gdksurface.c +++ b/gdk/gdksurface.c @@ -333,16 +333,8 @@ gdk_surface_finalize (GObject *object) if (!GDK_SURFACE_DESTROYED (surface)) { - if (GDK_SURFACE_TYPE (surface) != GDK_SURFACE_FOREIGN) - { - g_warning ("losing last reference to undestroyed surface"); - _gdk_surface_destroy (surface, FALSE); - } - else - /* We use TRUE here, to keep us from actually calling - * XDestroyWindow() on the window - */ - _gdk_surface_destroy (surface, TRUE); + g_warning ("losing last reference to undestroyed surface"); + _gdk_surface_destroy (surface, FALSE); } if (surface->impl) @@ -656,12 +648,6 @@ gdk_surface_new (GdkDisplay *display, #endif break; case GDK_SURFACE_CHILD: - if (GDK_SURFACE_TYPE (parent) == GDK_SURFACE_FOREIGN) - { - g_warning (G_STRLOC "Child surfaces must not be created as children of\n" - "a surface of type GDK_SURFACE_FOREIGN"); - return NULL; - } break; default: g_warning (G_STRLOC "cannot make surfaces of type %d", surface->surface_type); @@ -897,81 +883,69 @@ _gdk_surface_destroy_hierarchy (GdkSurface *surface, case GDK_SURFACE_TOPLEVEL: case GDK_SURFACE_CHILD: case GDK_SURFACE_TEMP: - case GDK_SURFACE_FOREIGN: case GDK_SURFACE_SUBSURFACE: - if (surface->surface_type == GDK_SURFACE_FOREIGN && !foreign_destroy) - { - } - else + if (surface->parent) { - if (surface->parent) - { - if (surface->parent->children) - surface->parent->children = g_list_remove_link (surface->parent->children, &surface->children_list_node); + if (surface->parent->children) + surface->parent->children = g_list_remove_link (surface->parent->children, &surface->children_list_node); - if (!recursing && - GDK_SURFACE_IS_MAPPED (surface)) - { - recompute_visible_regions (surface, FALSE); - gdk_surface_invalidate_in_parent (surface); - } - } - - if (surface->gl_paint_context) + if (!recursing && + GDK_SURFACE_IS_MAPPED (surface)) { - /* Make sure to destroy if current */ - g_object_run_dispose (G_OBJECT (surface->gl_paint_context)); - g_object_unref (surface->gl_paint_context); - surface->gl_paint_context = NULL; + recompute_visible_regions (surface, FALSE); + gdk_surface_invalidate_in_parent (surface); } + } - if (surface->frame_clock) - { - g_object_run_dispose (G_OBJECT (surface->frame_clock)); - gdk_surface_set_frame_clock (surface, NULL); - } + if (surface->gl_paint_context) + { + /* Make sure to destroy if current */ + g_object_run_dispose (G_OBJECT (surface->gl_paint_context)); + g_object_unref (surface->gl_paint_context); + surface->gl_paint_context = NULL; + } - if (surface->surface_type == GDK_SURFACE_FOREIGN) - g_assert (surface->children == NULL); - else - { - tmp = surface->children; - surface->children = NULL; - /* No need to free children list, its all made up of in-struct nodes */ + if (surface->frame_clock) + { + g_object_run_dispose (G_OBJECT (surface->frame_clock)); + gdk_surface_set_frame_clock (surface, NULL); + } - while (tmp) - { - temp_surface = tmp->data; - tmp = tmp->next; - - if (temp_surface) - _gdk_surface_destroy_hierarchy (temp_surface, - TRUE, - recursing_native || gdk_surface_has_impl (surface), - foreign_destroy); - } - } + tmp = surface->children; + surface->children = NULL; + /* No need to free children list, its all made up of in-struct nodes */ - _gdk_surface_clear_update_area (surface); + while (tmp) + { + temp_surface = tmp->data; + tmp = tmp->next; + + if (temp_surface) + _gdk_surface_destroy_hierarchy (temp_surface, + TRUE, + recursing_native || gdk_surface_has_impl (surface), + foreign_destroy); + } - impl_class = GDK_SURFACE_IMPL_GET_CLASS (surface->impl); + _gdk_surface_clear_update_area (surface); - if (gdk_surface_has_impl (surface)) - impl_class->destroy (surface, recursing_native, foreign_destroy); - else - { - /* hide to make sure we repaint and break grabs */ - gdk_surface_hide (surface); - } + impl_class = GDK_SURFACE_IMPL_GET_CLASS (surface->impl); - surface->state |= GDK_SURFACE_STATE_WITHDRAWN; - surface->parent = NULL; - surface->destroyed = TRUE; + if (gdk_surface_has_impl (surface)) + impl_class->destroy (surface, recursing_native, foreign_destroy); + else + { + /* hide to make sure we repaint and break grabs */ + gdk_surface_hide (surface); + } - surface_remove_from_pointer_info (surface, display); + surface->state |= GDK_SURFACE_STATE_WITHDRAWN; + surface->parent = NULL; + surface->destroyed = TRUE; - g_object_notify_by_pspec (G_OBJECT (surface), properties[PROP_STATE]); - } + surface_remove_from_pointer_info (surface, display); + + g_object_notify_by_pspec (G_OBJECT (surface), properties[PROP_STATE]); break; } } @@ -2235,10 +2209,8 @@ _gdk_surface_update_viewable (GdkSurface *surface) { gboolean viewable; - if (surface->surface_type == GDK_SURFACE_FOREIGN) - viewable = TRUE; - else if (gdk_surface_is_toplevel (surface) || - surface->parent->viewable) + if (gdk_surface_is_toplevel (surface) || + surface->parent->viewable) viewable = GDK_SURFACE_IS_MAPPED (surface); else viewable = FALSE; @@ -2899,24 +2871,19 @@ gdk_surface_set_cursor_internal (GdkSurface *surface, GdkDevice *device, GdkCursor *cursor) { + GdkPointerSurfaceInfo *pointer_info; + GdkDisplay *display; + if (GDK_SURFACE_DESTROYED (surface)) return; g_assert (gdk_surface_get_display (surface) == gdk_device_get_display (device)); - if (surface->surface_type == GDK_SURFACE_FOREIGN) - GDK_DEVICE_GET_CLASS (device)->set_surface_cursor (device, surface, cursor); - else - { - GdkPointerSurfaceInfo *pointer_info; - GdkDisplay *display; - - display = gdk_surface_get_display (surface); - pointer_info = _gdk_display_get_pointer_info (display, device); + display = gdk_surface_get_display (surface); + pointer_info = _gdk_display_get_pointer_info (display, device); - if (_gdk_surface_event_parent_of (surface, pointer_info->surface_under_pointer)) - update_cursor (display, device); - } + if (_gdk_surface_event_parent_of (surface, pointer_info->surface_under_pointer)) + update_cursor (display, device); } /** @@ -5173,10 +5140,10 @@ gdk_surface_register_dnd (GdkSurface *surface) * * This function is called by the drag source. * - * Returns: (transfer full) (nullable): a newly created #GdkDragContext or + * Returns: (transfer full) (nullable): a newly created #GdkDrag or * %NULL on error. */ -GdkDragContext * +GdkDrag * gdk_drag_begin (GdkSurface *surface, GdkDevice *device, GdkContentProvider *content, @@ -5525,7 +5492,6 @@ gdk_surface_set_state (GdkSurface *surface, case GDK_SURFACE_TEMP: /* ? */ g_object_notify (G_OBJECT (surface), "state"); break; - case GDK_SURFACE_FOREIGN: case GDK_SURFACE_CHILD: default: break; diff --git a/gdk/gdksurface.h b/gdk/gdksurface.h index 29e3eed820..a1b800b8f4 100644 --- a/gdk/gdksurface.h +++ b/gdk/gdksurface.h @@ -45,10 +45,9 @@ typedef struct _GdkGeometry GdkGeometry; * @GDK_SURFACE_CHILD: child surface (used to implement e.g. #GtkEntry) * @GDK_SURFACE_TEMP: override redirect temporary surface (used to implement * #GtkMenu) - * @GDK_SURFACE_FOREIGN: foreign surface (see gdk_surface_foreign_new()) * @GDK_SURFACE_SUBSURFACE: subsurface; This surface is visually * tied to a toplevel, and is moved/stacked with it. Currently this window - * type is only implemented in Wayland. Since 3.14 + * type is only implemented in Wayland * * Describes the kind of surface. */ @@ -57,7 +56,6 @@ typedef enum GDK_SURFACE_TOPLEVEL, GDK_SURFACE_CHILD, GDK_SURFACE_TEMP, - GDK_SURFACE_FOREIGN, GDK_SURFACE_SUBSURFACE } GdkSurfaceType; @@ -217,9 +215,6 @@ typedef enum * * In general, when multiple flags are set, flipping should take precedence over * sliding, which should take precedence over resizing. - * - * Since: 3.22 - * Stability: Unstable */ typedef enum { @@ -266,8 +261,6 @@ typedef enum * * Indicates which monitor (in a multi-head setup) a surface should span over * when in fullscreen mode. - * - * Since: 3.8 **/ typedef enum { @@ -377,16 +370,15 @@ struct _GdkGeometry * @GDK_SURFACE_STATE_ABOVE: the surface is kept above other surfaces. * @GDK_SURFACE_STATE_BELOW: the surface is kept below other surfaces. * @GDK_SURFACE_STATE_FOCUSED: the surface is presented as focused (with active decorations). - * @GDK_SURFACE_STATE_TILED: the surface is in a tiled state, Since 3.10. Since 3.91.2, this - * is deprecated in favor of per-edge information. - * @GDK_SURFACE_STATE_TOP_TILED: whether the top edge is tiled, Since 3.91.2 - * @GDK_SURFACE_STATE_TOP_RESIZABLE: whether the top edge is resizable, Since 3.91.2 - * @GDK_SURFACE_STATE_RIGHT_TILED: whether the right edge is tiled, Since 3.91.2 - * @GDK_SURFACE_STATE_RIGHT_RESIZABLE: whether the right edge is resizable, Since 3.91.2 - * @GDK_SURFACE_STATE_BOTTOM_TILED: whether the bottom edge is tiled, Since 3.91.2 - * @GDK_SURFACE_STATE_BOTTOM_RESIZABLE: whether the bottom edge is resizable, Since 3.91.2 - * @GDK_SURFACE_STATE_LEFT_TILED: whether the left edge is tiled, Since 3.91.2 - * @GDK_SURFACE_STATE_LEFT_RESIZABLE: whether the left edge is resizable, Since 3.91.2 + * @GDK_SURFACE_STATE_TILED: the surface is in a tiled state. Deprecated + * @GDK_SURFACE_STATE_TOP_TILED: whether the top edge is tiled + * @GDK_SURFACE_STATE_TOP_RESIZABLE: whether the top edge is resizable + * @GDK_SURFACE_STATE_RIGHT_TILED: whether the right edge is tiled + * @GDK_SURFACE_STATE_RIGHT_RESIZABLE: whether the right edge is resizable + * @GDK_SURFACE_STATE_BOTTOM_TILED: whether the bottom edge is tiled + * @GDK_SURFACE_STATE_BOTTOM_RESIZABLE: whether the bottom edge is resizable + * @GDK_SURFACE_STATE_LEFT_TILED: whether the left edge is tiled + * @GDK_SURFACE_STATE_LEFT_RESIZABLE: whether the left edge is resizable * * Specifies the state of a toplevel surface. */ diff --git a/gdk/gdksurfaceimpl.h b/gdk/gdksurfaceimpl.h index dfd9716617..03342e477f 100644 --- a/gdk/gdksurfaceimpl.h +++ b/gdk/gdksurfaceimpl.h @@ -193,7 +193,7 @@ struct _GdkSurfaceImplClass gdouble opacity); void (* destroy_notify) (GdkSurface *surface); void (* register_dnd) (GdkSurface *surface); - GdkDragContext * (*drag_begin) (GdkSurface *surface, + GdkDrag * (*drag_begin) (GdkSurface *surface, GdkDevice *device, GdkContentProvider*content, GdkDragAction actions, diff --git a/gdk/gdktypes.h b/gdk/gdktypes.h index cdd5808e78..16a64df3fc 100644 --- a/gdk/gdktypes.h +++ b/gdk/gdktypes.h @@ -123,7 +123,7 @@ typedef struct _GdkContentProvider GdkContentProvider; typedef struct _GdkCursor GdkCursor; typedef struct _GdkTexture GdkTexture; typedef struct _GdkDevice GdkDevice; -typedef struct _GdkDragContext GdkDragContext; +typedef struct _GdkDrag GdkDrag; typedef struct _GdkDrop GdkDrop; typedef struct _GdkClipboard GdkClipboard; @@ -196,9 +196,9 @@ typedef enum * @GDK_MODIFIER_RESERVED_23_MASK: A reserved bit flag; do not use in your own code * @GDK_MODIFIER_RESERVED_24_MASK: A reserved bit flag; do not use in your own code * @GDK_MODIFIER_RESERVED_25_MASK: A reserved bit flag; do not use in your own code - * @GDK_SUPER_MASK: the Super modifier. Since 2.10 - * @GDK_HYPER_MASK: the Hyper modifier. Since 2.10 - * @GDK_META_MASK: the Meta modifier. Since 2.10 + * @GDK_SUPER_MASK: the Super modifier + * @GDK_HYPER_MASK: the Hyper modifier + * @GDK_META_MASK: the Meta modifier * @GDK_MODIFIER_RESERVED_29_MASK: A reserved bit flag; do not use in your own code * @GDK_RELEASE_MASK: not used in GDK itself. GTK+ uses it to differentiate * between (keyval, modifiers) pairs from key press and release events. @@ -210,7 +210,7 @@ typedef enum * * Like the X Window System, GDK supports 8 modifier keys and 5 mouse buttons. * - * Since 2.10, GDK recognizes which of the Meta, Super or Hyper keys are mapped + * GDK recognizes which of the Meta, Super or Hyper keys are mapped * to Mod2 - Mod5, and indicates this by setting %GDK_SUPER_MASK, * %GDK_HYPER_MASK or %GDK_META_MASK in the state field of key events. * @@ -299,8 +299,6 @@ typedef enum * invoking menu shortcuts (accelerators), whereas on Apple computers * it’s the Command key (which correspond to %GDK_CONTROL_MASK and * %GDK_MOD2_MASK, respectively). - * - * Since: 3.4 **/ typedef enum { @@ -322,7 +320,7 @@ typedef enum * @GDK_GRAB_NOT_VIEWABLE: the grab surface or the @confine_to surface are not * viewable. * @GDK_GRAB_FROZEN: the resource is frozen by an active grab of another client. - * @GDK_GRAB_FAILED: the grab failed for some other reason. Since 3.16 + * @GDK_GRAB_FAILED: the grab failed for some other reason * * Returned by gdk_device_grab() to indicate success or the reason for the * failure of the grab attempt. @@ -371,13 +369,12 @@ typedef enum * @GDK_PROPERTY_CHANGE_MASK: receive property change events * @GDK_PROXIMITY_IN_MASK: receive proximity in events * @GDK_PROXIMITY_OUT_MASK: receive proximity out events - * @GDK_SUBSTRUCTURE_MASK: receive events about surface configuration changes of - * child surfaces + * @GDK_SUBSTRUCTURE_MASK: receive events about surface configuration changes of child surfaces * @GDK_SCROLL_MASK: receive scroll events - * @GDK_TOUCH_MASK: receive touch events. Since 3.4 - * @GDK_SMOOTH_SCROLL_MASK: receive smooth scrolling events. Since 3.4 - @GDK_TOUCHPAD_GESTURE_MASK: receive touchpad gesture events. Since 3.18 - * @GDK_TABLET_PAD_MASK: receive tablet pad events. Since 3.22 + * @GDK_TOUCH_MASK: receive touch events + * @GDK_SMOOTH_SCROLL_MASK: receive smooth scrolling events + @GDK_TOUCHPAD_GESTURE_MASK: receive touchpad gesture events + * @GDK_TABLET_PAD_MASK: receive tablet pad events * @GDK_ALL_EVENTS_MASK: the combination of all the above event masks. * * A set of bit-flags to indicate which events a surface is to receive. @@ -387,11 +384,6 @@ typedef enum * See the [input handling overview][chap-input-handling] for details of * [event masks][event-masks] and [event propagation][event-propagation]. * - * Since GTK 3.8, motion events are already compressed by default, independent - * of this mechanism. This compression can be disabled with - * gdk_surface_set_event_compression(). See the documentation of that function - * for details. - * * If %GDK_TOUCH_MASK is enabled, the surface will receive touch events * from touch-enabled devices. Those will come as sequences of #GdkEventTouch * with type %GDK_TOUCH_UPDATE, enclosed by two events with @@ -432,12 +424,10 @@ typedef enum * @GDK_GL_ERROR_NOT_AVAILABLE: OpenGL support is not available * @GDK_GL_ERROR_UNSUPPORTED_FORMAT: The requested visual format is not supported * @GDK_GL_ERROR_UNSUPPORTED_PROFILE: The requested profile is not supported - * @GDK_GL_ERROR_COMPILATION_FAILED: The shader compilation failed (available since 3.22) - * @GDK_GL_ERROR_LINK_FAILED: The shader linking failed (available since 3.22) + * @GDK_GL_ERROR_COMPILATION_FAILED: The shader compilation failed + * @GDK_GL_ERROR_LINK_FAILED: The shader linking failed * * Error enumeration for #GdkGLContext. - * - * Since: 3.16 */ typedef enum { GDK_GL_ERROR_NOT_AVAILABLE, @@ -454,8 +444,6 @@ typedef enum { * @GDK_VULKAN_ERROR_NOT_AVAILABLE: Vulkan support is not available on this Surface * * Error enumeration for #GdkVulkanContext. - * - * Since: 3.90 */ typedef enum { GDK_VULKAN_ERROR_UNSUPPORTED, @@ -519,9 +507,9 @@ typedef enum * @GDK_AXIS_XTILT: the axis is used for x tilt information. * @GDK_AXIS_YTILT: the axis is used for y tilt information. * @GDK_AXIS_WHEEL: the axis is used for wheel information. - * @GDK_AXIS_DISTANCE: the axis is used for pen/tablet distance information. (Since: 3.22) - * @GDK_AXIS_ROTATION: the axis is used for pen rotation information. (Since: 3.22) - * @GDK_AXIS_SLIDER: the axis is used for pen slider information. (Since: 3.22) + * @GDK_AXIS_DISTANCE: the axis is used for pen/tablet distance information + * @GDK_AXIS_ROTATION: the axis is used for pen rotation information + * @GDK_AXIS_SLIDER: the axis is used for pen slider information * @GDK_AXIS_LAST: a constant equal to the numerically highest axis value. * * An enumeration describing the way in which a device @@ -560,8 +548,6 @@ typedef enum * @GDK_AXIS_FLAG_SLIDER: Slider axis is present * * Flags describing the current capabilities of a device/tool. - * - * Since: 3.22 */ typedef enum { @@ -585,7 +571,7 @@ typedef enum * useful if source and destination agree on what it means. * @GDK_ACTION_ASK: Ask the user what to do with the data. * - * Used in #GdkDragContext to indicate what the destination + * Used in #GdkDrag to indicate what the destination * should do with the dropped data. */ typedef enum diff --git a/gdk/meson.build b/gdk/meson.build index 4a2e24073c..d68307392b 100644 --- a/gdk/meson.build +++ b/gdk/meson.build @@ -15,7 +15,7 @@ gdk_public_sources = files([ 'gdkdevicetool.c', 'gdkdisplay.c', 'gdkdisplaymanager.c', - 'gdkdnd.c', + 'gdkdrag.c', 'gdkdrawcontext.c', 'gdkdrop.c', 'gdkevents.c', @@ -65,7 +65,7 @@ gdk_public_headers = files([ 'gdkdevicetool.h', 'gdkdisplay.h', 'gdkdisplaymanager.h', - 'gdkdnd.h', + 'gdkdrag.h', 'gdkdrawcontext.h', 'gdkdrop.h', 'gdkevents.h', diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c index 9c9b79b563..97201fd1a4 100644 --- a/gdk/wayland/gdkdevice-wayland.c +++ b/gdk/wayland/gdkdevice-wayland.c @@ -247,7 +247,7 @@ struct _GdkWaylandSeat GdkClipboard *clipboard; GdkClipboard *primary_clipboard; struct wl_data_device *data_device; - GdkDragContext *drag; + GdkDrag *drag; GdkDrop *drop; /* Source/dest for non-local dnd */ @@ -4516,6 +4516,12 @@ pointer_surface_update_scale (GdkDevice *device) gdk_wayland_device_update_surface_cursor (device); } +void +gdk_wayland_seat_update_cursor_scale (GdkWaylandSeat *seat) +{ + pointer_surface_update_scale (seat->master_pointer); +} + static void pointer_surface_enter (void *data, struct wl_surface *wl_surface, @@ -5133,12 +5139,12 @@ gdk_wayland_seat_set_global_cursor (GdkSeat *seat, } void -gdk_wayland_seat_set_drag (GdkSeat *seat, - GdkDragContext *context) +gdk_wayland_seat_set_drag (GdkSeat *seat, + GdkDrag *drag) { GdkWaylandSeat *wayland_seat = GDK_WAYLAND_SEAT (seat); - g_set_object (&wayland_seat->drag, context); + g_set_object (&wayland_seat->drag, drag); } struct wl_data_device * diff --git a/gdk/wayland/gdkdisplay-wayland.c b/gdk/wayland/gdkdisplay-wayland.c index 77b948a1f2..712112b565 100644 --- a/gdk/wayland/gdkdisplay-wayland.c +++ b/gdk/wayland/gdkdisplay-wayland.c @@ -38,6 +38,7 @@ #include "gdkdisplay.h" #include "gdkdisplay-wayland.h" #include "gdkmonitor-wayland.h" +#include "gdkseat-wayland.h" #include "gdkinternals.h" #include "gdkdeviceprivate.h" #include "gdkkeysprivate.h" @@ -857,8 +858,6 @@ gdk_wayland_display_get_next_serial (GdkDisplay *display) * if no ID has been defined. * * Returns: the startup notification ID for @display, or %NULL - * - * Since: 4.0 */ const gchar * gdk_wayland_display_get_startup_notification_id (GdkDisplay *display) @@ -1885,9 +1884,20 @@ transform_to_string (int transform) static void update_scale (GdkDisplay *display) { + GList *seats; + GList *l; + g_list_foreach (gdk_wayland_display_get_toplevel_surfaces (display), (GFunc)gdk_wayland_surface_update_scale, NULL); + seats = gdk_display_list_seats (display); + for (l = seats; l; l = l->next) + { + GdkSeat *seat = l->data; + + gdk_wayland_seat_update_cursor_scale (GDK_WAYLAND_SEAT (seat)); + } + g_list_free (seats); } static void diff --git a/gdk/wayland/gdkdnd-wayland.c b/gdk/wayland/gdkdnd-wayland.c index 36c0c9b138..4288693766 100644 --- a/gdk/wayland/gdkdnd-wayland.c +++ b/gdk/wayland/gdkdnd-wayland.c @@ -17,7 +17,7 @@ #include "config.h" -#include "gdkdndprivate.h" +#include "gdkdragprivate.h" #include "gdkinternals.h" #include "gdkproperty.h" @@ -34,19 +34,19 @@ #include <gio/gunixoutputstream.h> #include <string.h> -#define GDK_TYPE_WAYLAND_DRAG_CONTEXT (gdk_wayland_drag_context_get_type ()) -#define GDK_WAYLAND_DRAG_CONTEXT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_WAYLAND_DRAG_CONTEXT, GdkWaylandDragContext)) -#define GDK_WAYLAND_DRAG_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_WAYLAND_DRAG_CONTEXT, GdkWaylandDragContextClass)) -#define GDK_IS_WAYLAND_DRAG_CONTEXT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WAYLAND_DRAG_CONTEXT)) -#define GDK_IS_WAYLAND_DRAG_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_WAYLAND_DRAG_CONTEXT)) -#define GDK_WAYLAND_DRAG_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_WAYLAND_DRAG_CONTEXT, GdkWaylandDragContextClass)) +#define GDK_TYPE_WAYLAND_DRAG (gdk_wayland_drag_get_type ()) +#define GDK_WAYLAND_DRAG(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_WAYLAND_DRAG, GdkWaylandDrag)) +#define GDK_WAYLAND_DRAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_WAYLAND_DRAG, GdkWaylandDragClass)) +#define GDK_IS_WAYLAND_DRAG(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WAYLAND_DRAG)) +#define GDK_IS_WAYLAND_DRAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_WAYLAND_DRAG)) +#define GDK_WAYLAND_DRAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_WAYLAND_DRAG, GdkWaylandDragClass)) -typedef struct _GdkWaylandDragContext GdkWaylandDragContext; -typedef struct _GdkWaylandDragContextClass GdkWaylandDragContextClass; +typedef struct _GdkWaylandDrag GdkWaylandDrag; +typedef struct _GdkWaylandDragClass GdkWaylandDragClass; -struct _GdkWaylandDragContext +struct _GdkWaylandDrag { - GdkDragContext context; + GdkDrag drag; GdkSurface *dnd_surface; struct wl_surface *dnd_wl_surface; struct wl_data_source *data_source; @@ -57,34 +57,34 @@ struct _GdkWaylandDragContext gint hot_y; }; -struct _GdkWaylandDragContextClass +struct _GdkWaylandDragClass { - GdkDragContextClass parent_class; + GdkDragClass parent_class; }; -static GList *contexts; +static GList *drags; -GType gdk_wayland_drag_context_get_type (void); +GType gdk_wayland_drag_get_type (void); -G_DEFINE_TYPE (GdkWaylandDragContext, gdk_wayland_drag_context, GDK_TYPE_DRAG_CONTEXT) +G_DEFINE_TYPE (GdkWaylandDrag, gdk_wayland_drag, GDK_TYPE_DRAG) static void -gdk_wayland_drag_context_finalize (GObject *object) +gdk_wayland_drag_finalize (GObject *object) { - GdkWaylandDragContext *wayland_context = GDK_WAYLAND_DRAG_CONTEXT (object); - GdkDragContext *context = GDK_DRAG_CONTEXT (object); + GdkWaylandDrag *wayland_drag = GDK_WAYLAND_DRAG (object); + GdkDrag *drag = GDK_DRAG (object); GdkSurface *dnd_surface; - contexts = g_list_remove (contexts, context); + drags = g_list_remove (drags, drag); - gdk_drag_context_set_cursor (context, NULL); + gdk_drag_set_cursor (drag, NULL); - g_clear_pointer (&wayland_context->data_source, (GDestroyNotify) wl_data_source_destroy); - g_clear_pointer (&wayland_context->offer, (GDestroyNotify) wl_data_offer_destroy); + g_clear_pointer (&wayland_drag->data_source, (GDestroyNotify) wl_data_source_destroy); + g_clear_pointer (&wayland_drag->offer, (GDestroyNotify) wl_data_offer_destroy); - dnd_surface = wayland_context->dnd_surface; + dnd_surface = wayland_drag->dnd_surface; - G_OBJECT_CLASS (gdk_wayland_drag_context_parent_class)->finalize (object); + G_OBJECT_CLASS (gdk_wayland_drag_parent_class)->finalize (object); if (dnd_surface) gdk_surface_destroy (dnd_surface); @@ -106,121 +106,121 @@ gdk_to_wl_actions (GdkDragAction action) } static void -gdk_wayland_drag_context_drag_abort (GdkDragContext *context, - guint32 time) +gdk_wayland_drag_drag_abort (GdkDrag *drag, + guint32 time) { } static void -gdk_wayland_drag_context_drag_drop (GdkDragContext *context, - guint32 time) +gdk_wayland_drag_drag_drop (GdkDrag *drag, + guint32 time) { } static void -gdk_wayland_drag_context_init (GdkWaylandDragContext *context_wayland) +gdk_wayland_drag_init (GdkWaylandDrag *drag_wayland) { - GdkDragContext *context; + GdkDrag *drag; - context = GDK_DRAG_CONTEXT (context_wayland); - contexts = g_list_prepend (contexts, context); + drag = GDK_DRAG (drag_wayland); + drags = g_list_prepend (drags, drag); - context->action = GDK_ACTION_COPY; + drag->action = GDK_ACTION_COPY; } static GdkSurface * -gdk_wayland_drag_context_get_drag_surface (GdkDragContext *context) +gdk_wayland_drag_get_drag_surface (GdkDrag *drag) { - return GDK_WAYLAND_DRAG_CONTEXT (context)->dnd_surface; + return GDK_WAYLAND_DRAG (drag)->dnd_surface; } static void -gdk_wayland_drag_context_set_hotspot (GdkDragContext *context, - gint hot_x, - gint hot_y) +gdk_wayland_drag_set_hotspot (GdkDrag *drag, + gint hot_x, + gint hot_y) { - GdkWaylandDragContext *context_wayland = GDK_WAYLAND_DRAG_CONTEXT (context); - gint prev_hot_x = context_wayland->hot_x; - gint prev_hot_y = context_wayland->hot_y; + GdkWaylandDrag *drag_wayland = GDK_WAYLAND_DRAG (drag); + gint prev_hot_x = drag_wayland->hot_x; + gint prev_hot_y = drag_wayland->hot_y; const GdkRectangle damage_rect = { .width = 1, .height = 1 }; - context_wayland->hot_x = hot_x; - context_wayland->hot_y = hot_y; + drag_wayland->hot_x = hot_x; + drag_wayland->hot_y = hot_y; if (prev_hot_x == hot_x && prev_hot_y == hot_y) return; - _gdk_wayland_surface_offset_next_wl_buffer (context_wayland->dnd_surface, + _gdk_wayland_surface_offset_next_wl_buffer (drag_wayland->dnd_surface, -hot_x, -hot_y); - gdk_surface_invalidate_rect (context_wayland->dnd_surface, &damage_rect); + gdk_surface_invalidate_rect (drag_wayland->dnd_surface, &damage_rect); } static void -gdk_wayland_drag_context_set_cursor (GdkDragContext *context, - GdkCursor *cursor) +gdk_wayland_drag_set_cursor (GdkDrag *drag, + GdkCursor *cursor) { - GdkDevice *device = gdk_drag_context_get_device (context); + GdkDevice *device = gdk_drag_get_device (drag); gdk_wayland_seat_set_global_cursor (gdk_device_get_seat (device), cursor); } static void -gdk_wayland_drag_context_action_changed (GdkDragContext *context, - GdkDragAction action) +gdk_wayland_drag_action_changed (GdkDrag *drag, + GdkDragAction action) { GdkCursor *cursor; - cursor = gdk_drag_get_cursor (context, action); - gdk_drag_context_set_cursor (context, cursor); + cursor = gdk_drag_get_cursor (drag, action); + gdk_drag_set_cursor (drag, cursor); } static void -gdk_wayland_drag_context_drop_performed (GdkDragContext *context, - guint32 time_) +gdk_wayland_drag_drop_performed (GdkDrag *drag, + guint32 time_) { - gdk_drag_context_set_cursor (context, NULL); + gdk_drag_set_cursor (drag, NULL); } static void -gdk_wayland_drag_context_cancel (GdkDragContext *context, - GdkDragCancelReason reason) +gdk_wayland_drag_cancel (GdkDrag *drag, + GdkDragCancelReason reason) { - gdk_drag_context_set_cursor (context, NULL); + gdk_drag_set_cursor (drag, NULL); } static void -gdk_wayland_drag_context_drop_done (GdkDragContext *context, - gboolean success) +gdk_wayland_drag_drop_done (GdkDrag *drag, + gboolean success) { - GdkWaylandDragContext *context_wayland = GDK_WAYLAND_DRAG_CONTEXT (context); - GdkDevice *device = gdk_drag_context_get_device (context); + GdkWaylandDrag *drag_wayland = GDK_WAYLAND_DRAG (drag); + GdkDevice *device = gdk_drag_get_device (drag); - gdk_wayland_seat_set_drag (gdk_device_get_seat (device), context); + gdk_wayland_seat_set_drag (gdk_device_get_seat (device), drag); if (success) { - if (context_wayland->dnd_surface) - gdk_surface_hide (context_wayland->dnd_surface); + if (drag_wayland->dnd_surface) + gdk_surface_hide (drag_wayland->dnd_surface); } } static void -gdk_wayland_drag_context_class_init (GdkWaylandDragContextClass *klass) +gdk_wayland_drag_class_init (GdkWaylandDragClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - GdkDragContextClass *context_class = GDK_DRAG_CONTEXT_CLASS (klass); - - object_class->finalize = gdk_wayland_drag_context_finalize; - - context_class->drag_abort = gdk_wayland_drag_context_drag_abort; - context_class->drag_drop = gdk_wayland_drag_context_drag_drop; - context_class->get_drag_surface = gdk_wayland_drag_context_get_drag_surface; - context_class->set_hotspot = gdk_wayland_drag_context_set_hotspot; - context_class->drop_done = gdk_wayland_drag_context_drop_done; - context_class->set_cursor = gdk_wayland_drag_context_set_cursor; - context_class->action_changed = gdk_wayland_drag_context_action_changed; - context_class->drop_performed = gdk_wayland_drag_context_drop_performed; - context_class->cancel = gdk_wayland_drag_context_cancel; + GdkDragClass *drag_class = GDK_DRAG_CLASS (klass); + + object_class->finalize = gdk_wayland_drag_finalize; + + drag_class->drag_abort = gdk_wayland_drag_drag_abort; + drag_class->drag_drop = gdk_wayland_drag_drag_drop; + drag_class->get_drag_surface = gdk_wayland_drag_get_drag_surface; + drag_class->set_hotspot = gdk_wayland_drag_set_hotspot; + drag_class->drop_done = gdk_wayland_drag_drop_done; + drag_class->set_cursor = gdk_wayland_drag_set_cursor; + drag_class->action_changed = gdk_wayland_drag_action_changed; + drag_class->drop_performed = gdk_wayland_drag_drop_performed; + drag_class->cancel = gdk_wayland_drag_cancel; } void @@ -266,15 +266,15 @@ data_source_target (void *data, } static void -gdk_wayland_drag_context_write_done (GObject *context, - GAsyncResult *result, - gpointer user_data) +gdk_wayland_drag_write_done (GObject *drag, + GAsyncResult *result, + gpointer user_data) { GError *error = NULL; - if (!gdk_drag_context_write_finish (GDK_DRAG_CONTEXT (context), result, &error)) + if (!gdk_drag_write_finish (GDK_DRAG (drag), result, &error)) { - GDK_DISPLAY_NOTE (gdk_drag_context_get_display (GDK_DRAG_CONTEXT (context)), DND, g_message ("%p: failed to write stream: %s", context, error->message)); + GDK_DISPLAY_NOTE (gdk_drag_get_display (GDK_DRAG (drag)), DND, g_message ("%p: failed to write stream: %s", drag, error->message)); g_error_free (error); } } @@ -285,23 +285,23 @@ data_source_send (void *data, const char *mime_type, int32_t fd) { - GdkDragContext *context = data; + GdkDrag *drag = data; GOutputStream *stream; - GDK_DISPLAY_NOTE (gdk_drag_context_get_display (context), DND, g_message ("%p: data source send request for %s on fd %d\n", + GDK_DISPLAY_NOTE (gdk_drag_get_display (drag), DND, g_message ("%p: data source send request for %s on fd %d\n", source, mime_type, fd)); //mime_type = gdk_intern_mime_type (mime_type); mime_type = g_intern_string (mime_type); stream = g_unix_output_stream_new (fd, TRUE); - gdk_drag_context_write_async (context, - mime_type, - stream, - G_PRIORITY_DEFAULT, - NULL, - gdk_wayland_drag_context_write_done, - context); + gdk_drag_write_async (drag, + mime_type, + stream, + G_PRIORITY_DEFAULT, + NULL, + gdk_wayland_drag_write_done, + drag); g_object_unref (stream); } @@ -309,30 +309,30 @@ static void data_source_cancelled (void *data, struct wl_data_source *source) { - GdkDragContext *context = data; + GdkDrag *drag = data; - GDK_DISPLAY_NOTE (gdk_drag_context_get_display (context), EVENTS, + GDK_DISPLAY_NOTE (gdk_drag_get_display (drag), EVENTS, g_message ("data source cancelled, source = %p", source)); - gdk_drag_context_cancel (context, GDK_DRAG_CANCEL_ERROR); + gdk_drag_cancel (drag, GDK_DRAG_CANCEL_ERROR); } static void data_source_dnd_drop_performed (void *data, struct wl_data_source *source) { - GdkDragContext *context = data; + GdkDrag *drag = data; - g_signal_emit_by_name (context, "drop-performed"); + g_signal_emit_by_name (drag, "drop-performed"); } static void data_source_dnd_finished (void *data, struct wl_data_source *source) { - GdkDragContext *context = data; + GdkDrag *drag = data; - g_signal_emit_by_name (context, "dnd-finished"); + g_signal_emit_by_name (drag, "dnd-finished"); } static void @@ -340,14 +340,14 @@ data_source_action (void *data, struct wl_data_source *source, uint32_t action) { - GdkDragContext *context = data; + GdkDrag *drag = data; - GDK_DISPLAY_NOTE (gdk_drag_context_get_display (context), EVENTS, + GDK_DISPLAY_NOTE (gdk_drag_get_display (drag), EVENTS, g_message ("data source action, source = %p action=%x", source, action)); - context->action = _wl_to_gdk_actions (action); - g_signal_emit_by_name (context, "action-changed", context->action); + drag->action = _wl_to_gdk_actions (action); + g_signal_emit_by_name (drag, "action-changed", drag->action); } static const struct wl_data_source_listener data_source_listener = { @@ -360,27 +360,27 @@ static const struct wl_data_source_listener data_source_listener = { }; static void -gdk_wayland_drag_context_create_data_source (GdkDragContext *context) +gdk_wayland_drag_create_data_source (GdkDrag *drag) { - GdkWaylandDragContext *context_wayland = GDK_WAYLAND_DRAG_CONTEXT (context); - GdkDisplay *display = gdk_drag_context_get_display (context); + GdkWaylandDrag *drag_wayland = GDK_WAYLAND_DRAG (drag); + GdkDisplay *display = gdk_drag_get_display (drag); GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (display); const char *const *mimetypes; gsize i, n_mimetypes; - context_wayland->data_source = wl_data_device_manager_create_data_source (display_wayland->data_device_manager); - wl_data_source_add_listener (context_wayland->data_source, + drag_wayland->data_source = wl_data_device_manager_create_data_source (display_wayland->data_device_manager); + wl_data_source_add_listener (drag_wayland->data_source, &data_source_listener, - context); + drag); - mimetypes = gdk_content_formats_get_mime_types (gdk_drag_context_get_formats (context), &n_mimetypes); + mimetypes = gdk_content_formats_get_mime_types (gdk_drag_get_formats (drag), &n_mimetypes); for (i = 0; i < n_mimetypes; i++) { - wl_data_source_offer (context_wayland->data_source, mimetypes[i]); + wl_data_source_offer (drag_wayland->data_source, mimetypes[i]); } } -GdkDragContext * +GdkDrag * _gdk_wayland_surface_drag_begin (GdkSurface *surface, GdkDevice *device, GdkContentProvider *content, @@ -388,53 +388,53 @@ _gdk_wayland_surface_drag_begin (GdkSurface *surface, gint dx, gint dy) { - GdkWaylandDragContext *context_wayland; - GdkDragContext *context; + GdkWaylandDrag *drag_wayland; + GdkDrag *drag; GdkSeat *seat; GdkWaylandDisplay *display_wayland; display_wayland = GDK_WAYLAND_DISPLAY (gdk_device_get_display (device)); seat = gdk_device_get_seat (device); - context_wayland = g_object_new (GDK_TYPE_WAYLAND_DRAG_CONTEXT, - "device", device, - "content", content, - NULL); - context = GDK_DRAG_CONTEXT (context_wayland); - context->source_surface = g_object_ref (surface); + drag_wayland = g_object_new (GDK_TYPE_WAYLAND_DRAG, + "device", device, + "content", content, + NULL); + drag = GDK_DRAG (drag_wayland); + drag->source_surface = g_object_ref (surface); - context_wayland->dnd_surface = create_dnd_surface (gdk_surface_get_display (surface)); - context_wayland->dnd_wl_surface = gdk_wayland_surface_get_wl_surface (context_wayland->dnd_surface); + drag_wayland->dnd_surface = create_dnd_surface (gdk_surface_get_display (surface)); + drag_wayland->dnd_wl_surface = gdk_wayland_surface_get_wl_surface (drag_wayland->dnd_surface); - gdk_wayland_drag_context_create_data_source (context); + gdk_wayland_drag_create_data_source (drag); if (display_wayland->data_device_manager_version >= WL_DATA_SOURCE_SET_ACTIONS_SINCE_VERSION) { - wl_data_source_set_actions (context_wayland->data_source, + wl_data_source_set_actions (drag_wayland->data_source, gdk_to_wl_actions (actions)); } - gdk_wayland_seat_set_drag (seat, context); + gdk_wayland_seat_set_drag (seat, drag); wl_data_device_start_drag (gdk_wayland_device_get_data_device (device), - context_wayland->data_source, + drag_wayland->data_source, gdk_wayland_surface_get_wl_surface (surface), - context_wayland->dnd_wl_surface, + drag_wayland->dnd_wl_surface, _gdk_wayland_display_get_serial (display_wayland)); gdk_seat_ungrab (seat); - return context; + return drag; } void -_gdk_wayland_drag_context_set_source_surface (GdkDragContext *context, - GdkSurface *surface) +_gdk_wayland_drag_set_source_surface (GdkDrag *drag, + GdkSurface *surface) { - if (context->source_surface) - g_object_unref (context->source_surface); + if (drag->source_surface) + g_object_unref (drag->source_surface); - context->source_surface = surface ? g_object_ref (surface) : NULL; + drag->source_surface = surface ? g_object_ref (surface) : NULL; } diff --git a/gdk/wayland/gdkdrop-wayland.c b/gdk/wayland/gdkdrop-wayland.c index d290c6229b..1c21dafdfa 100644 --- a/gdk/wayland/gdkdrop-wayland.c +++ b/gdk/wayland/gdkdrop-wayland.c @@ -261,7 +261,7 @@ gdk_wayland_drop_init (GdkWaylandDrop *drop) GdkDrop * gdk_wayland_drop_new (GdkDevice *device, - GdkDragContext *drag, + GdkDrag *drag, GdkContentFormats *formats, GdkSurface *surface, struct wl_data_offer *offer, diff --git a/gdk/wayland/gdkprivate-wayland.h b/gdk/wayland/gdkprivate-wayland.h index e4984cc5d4..68bd84b4a5 100644 --- a/gdk/wayland/gdkprivate-wayland.h +++ b/gdk/wayland/gdkprivate-wayland.h @@ -95,7 +95,7 @@ void gdk_wayland_surface_attach_image (GdkSurface const cairo_region_t *damage); void _gdk_wayland_surface_register_dnd (GdkSurface *surface); -GdkDragContext *_gdk_wayland_surface_drag_begin (GdkSurface *surface, +GdkDrag *_gdk_wayland_surface_drag_begin (GdkSurface *surface, GdkDevice *device, GdkContentProvider *content, GdkDragAction actions, @@ -105,7 +105,7 @@ void _gdk_wayland_surface_offset_next_wl_buffer (GdkSurface *surface, int x, int y); GdkDrop * gdk_wayland_drop_new (GdkDevice *device, - GdkDragContext *drag, + GdkDrag *drag, GdkContentFormats *formats, GdkSurface *surface, struct wl_data_offer *offer, @@ -115,13 +115,13 @@ void gdk_wayland_drop_set_source_actions (GdkDrop void gdk_wayland_drop_set_action (GdkDrop *drop, uint32_t action); -void _gdk_wayland_drag_context_set_source_surface (GdkDragContext *context, - GdkSurface *surface); +void _gdk_wayland_drag_set_source_surface (GdkDrag *drag, + GdkSurface *surface); -void _gdk_wayland_display_create_surface_impl (GdkDisplay *display, - GdkSurface *surface, - GdkSurface *real_parent, - GdkSurfaceAttr *attributes); +void _gdk_wayland_display_create_surface_impl (GdkDisplay *display, + GdkSurface *surface, + GdkSurface *real_parent, + GdkSurfaceAttr *attributes); gint _gdk_wayland_display_text_property_to_utf8_list (GdkDisplay *display, GdkAtom encoding, @@ -147,7 +147,7 @@ struct wl_data_device * gdk_wayland_device_get_data_device (GdkDevice *gdk_devic void gdk_wayland_device_set_selection (GdkDevice *gdk_device, struct wl_data_source *source); -GdkDragContext * gdk_wayland_device_get_drop_context (GdkDevice *gdk_device); +GdkDrag* gdk_wayland_device_get_drop_context (GdkDevice *gdk_device); void gdk_wayland_device_unset_touch_grab (GdkDevice *device, GdkEventSequence *sequence); @@ -193,7 +193,7 @@ struct gtk_surface1 * gdk_wayland_surface_get_gtk_surface (GdkSurface *surface); void gdk_wayland_seat_set_global_cursor (GdkSeat *seat, GdkCursor *cursor); void gdk_wayland_seat_set_drag (GdkSeat *seat, - GdkDragContext *drag); + GdkDrag *drag); struct wl_output *gdk_wayland_surface_get_wl_output (GdkSurface *surface); diff --git a/gdk/wayland/gdkseat-wayland.h b/gdk/wayland/gdkseat-wayland.h index 52c73e22ee..eccc792817 100644 --- a/gdk/wayland/gdkseat-wayland.h +++ b/gdk/wayland/gdkseat-wayland.h @@ -41,4 +41,6 @@ struct _GdkWaylandSeatClass GType gdk_wayland_seat_get_type (void) G_GNUC_CONST; +void gdk_wayland_seat_update_cursor_scale (GdkWaylandSeat *seat); + #endif /* __GDK_WAYLAND_SEAT_H__ */ diff --git a/gdk/wayland/gdkselection-wayland.c b/gdk/wayland/gdkselection-wayland.c index 39380537a2..9683a5a8ed 100644 --- a/gdk/wayland/gdkselection-wayland.c +++ b/gdk/wayland/gdkselection-wayland.c @@ -28,7 +28,6 @@ #include "gdkprivate-wayland.h" #include "gdkdisplay-wayland.h" #include "gdkcontentformatsprivate.h" -#include "gdkdndprivate.h" #include "gdkproperty.h" #include <string.h> diff --git a/gdk/win32/gdkclipdrop-win32.c b/gdk/win32/gdkclipdrop-win32.c index f3d4925fb5..78cf1ba892 100644 --- a/gdk/win32/gdkclipdrop-win32.c +++ b/gdk/win32/gdkclipdrop-win32.c @@ -280,7 +280,7 @@ Otherwise it's similar to how the clipboard works. Only the DnD server #include "gdkclipboard-win32.h" #include "gdkclipdrop-win32.h" #include "gdkhdataoutputstream-win32.h" -#include "gdk/gdkdndprivate.h" +#include "gdk/gdkdragprivate.h" #include "gdkwin32dnd.h" #include "gdkwin32dnd-private.h" #include "gdkwin32.h" diff --git a/gdk/win32/gdkdevice-win32.c b/gdk/win32/gdkdevice-win32.c index 037d1b05cf..49549e19ba 100644 --- a/gdk/win32/gdkdevice-win32.c +++ b/gdk/win32/gdkdevice-win32.c @@ -222,8 +222,7 @@ _gdk_device_win32_surface_at_position (GdkDevice *device, do { window = gdk_win32_handle_table_lookup (hwnd); - if (window != NULL && - GDK_SURFACE_TYPE (window) != GDK_SURFACE_FOREIGN) + if (window != NULL) break; screen_to_client (hwnd, screen_pt, &client_pt); diff --git a/gdk/win32/gdkdrag-win32.c b/gdk/win32/gdkdrag-win32.c index f605171ec1..347e0f6f19 100644 --- a/gdk/win32/gdkdrag-win32.c +++ b/gdk/win32/gdkdrag-win32.c @@ -130,7 +130,7 @@ * From that point forward the context gets any events emitted * by GDK, and can prevent these events from going anywhere else. * They are all handled in - * S: gdk_drag_context_handle_source_event() -> backend:handle_event() + * S: gdk_drag_handle_source_event() -> backend:handle_event() * (except for wayland backend - it doesn't have that function). * * That function catches the following events: @@ -195,14 +195,14 @@ /* For C-style COM wrapper macros */ #define COBJMACROS -#include "gdkdnd.h" +#include "gdkdrag.h" #include "gdkproperty.h" #include "gdkinternals.h" #include "gdkprivate-win32.h" #include "gdkwin32.h" #include "gdkwin32dnd.h" #include "gdkdisplayprivate.h" -#include "gdk/gdkdndprivate.h" +#include "gdk/gdkdragprivate.h" #include "gdkwin32dnd-private.h" #include "gdkdisplay-win32.h" #include "gdkdeviceprivate.h" @@ -226,12 +226,12 @@ typedef struct IDropSource ids; IDropSourceNotify idsn; gint ref_count; - GdkDragContext *drag; + GdkDrag *drag; /* These are thread-local - * copies of the similar fields from GdkWin32DragContext + * copies of the similar fields from GdkWin32Drag */ - GdkWin32DragContextUtilityData util_data; + GdkWin32DragUtilityData util_data; /* Cached here, so that we don't have to look in * the context every time. @@ -249,7 +249,7 @@ typedef struct typedef struct { IDataObject ido; int ref_count; - GdkDragContext *drag; + GdkDrag *drag; GArray *formats; } data_object; @@ -342,8 +342,8 @@ struct _GdkWin32DnDThreadUpdateDragState { GdkWin32DnDThreadQueueItem base; - gpointer opaque_ddd; - GdkWin32DragContextUtilityData produced_util_data; + gpointer opaque_ddd; + GdkWin32DragUtilityData produced_util_data; }; typedef struct _GdkWin32DnDThread GdkWin32DnDThread; @@ -485,10 +485,10 @@ process_dnd_queue (gboolean timed, } void -_gdk_win32_local_drag_context_drop_response (GdkDragContext *drag, - GdkDragAction action) +_gdk_win32_local_drag_drop_response (GdkDrag *drag, + GdkDragAction action) { - GDK_NOTE (DND, g_print ("_gdk_win32_local_drag_context_drop_response: 0x%p\n", + GDK_NOTE (DND, g_print ("_gdk_win32_local_drag_drop_response: 0x%p\n", drag)); g_signal_emit_by_name (drag, "dnd-finished"); @@ -500,8 +500,8 @@ do_drag_drop_response (gpointer user_data) { GdkWin32DnDThreadDoDragDrop *ddd = (GdkWin32DnDThreadDoDragDrop *) user_data; HRESULT hr = ddd->received_result; - GdkDragContext *drag = GDK_DRAG_CONTEXT (ddd->base.opaque_context); - GdkWin32DragContext *drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + GdkDrag *drag = GDK_DRAG (ddd->base.opaque_context); + GdkWin32Drag *drag_win32 = GDK_WIN32_DRAG (drag); GdkWin32Clipdrop *clipdrop = _gdk_win32_clipdrop_get (); gpointer table_value = g_hash_table_lookup (clipdrop->active_source_drags, drag); @@ -560,7 +560,7 @@ received_drag_context_data (GObject *drag, GdkWin32DnDThreadGetData *getdata = (GdkWin32DnDThreadGetData *) user_data; GdkWin32Clipdrop *clipdrop = _gdk_win32_clipdrop_get (); - if (!gdk_drag_context_write_finish (GDK_DRAG_CONTEXT (drag), result, &error)) + if (!gdk_drag_write_finish (GDK_DRAG (drag), result, &error)) { HANDLE handle; gboolean is_hdata; @@ -593,7 +593,7 @@ get_data_response (gpointer user_data) { GdkWin32DnDThreadGetData *getdata = (GdkWin32DnDThreadGetData *) user_data; GdkWin32Clipdrop *clipdrop = _gdk_win32_clipdrop_get (); - GdkDragContext *drag = GDK_DRAG_CONTEXT (getdata->base.opaque_context); + GdkDrag *drag = GDK_DRAG (getdata->base.opaque_context); gpointer ddd = g_hash_table_lookup (clipdrop->active_source_drags, drag); GDK_NOTE (DND, g_print ("idataobject_getdata will request target 0x%p (%s)", @@ -610,7 +610,7 @@ get_data_response (gpointer user_data) if (stream) { getdata->stream = GDK_WIN32_HDATA_OUTPUT_STREAM (stream); - gdk_drag_context_write_async (drag, + gdk_drag_write_async (drag, getdata->pair.contentformat, stream, G_PRIORITY_DEFAULT, @@ -721,16 +721,16 @@ typedef enum { static gboolean use_ole2_dnd = TRUE; -static gboolean drag_context_grab (GdkDragContext *drag); +static gboolean drag_context_grab (GdkDrag *drag); -G_DEFINE_TYPE (GdkWin32DragContext, gdk_win32_drag_context, GDK_TYPE_DRAG_CONTEXT) +G_DEFINE_TYPE (GdkWin32Drag, gdk_win32_drag, GDK_TYPE_DRAG) static void -move_drag_surface (GdkDragContext *drag, - guint x_root, - guint y_root) +move_drag_surface (GdkDrag *drag, + guint x_root, + guint y_root) { - GdkWin32DragContext *drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + GdkWin32Drag *drag_win32 = GDK_WIN32_DRAG (drag); g_assert (_win32_main_thread == NULL || _win32_main_thread == g_thread_self ()); @@ -742,7 +742,7 @@ move_drag_surface (GdkDragContext *drag, } static void -gdk_win32_drag_context_init (GdkWin32DragContext *drag) +gdk_win32_drag_init (GdkWin32Drag *drag) { g_assert (_win32_main_thread == NULL || _win32_main_thread == g_thread_self ()); @@ -750,32 +750,32 @@ gdk_win32_drag_context_init (GdkWin32DragContext *drag) drag->handle_events = TRUE; drag->dest_window = INVALID_HANDLE_VALUE; - GDK_NOTE (DND, g_print ("gdk_win32_drag_context_init %p\n", drag)); + GDK_NOTE (DND, g_print ("gdk_win32_drag_init %p\n", drag)); } static void -gdk_win32_drag_context_finalize (GObject *object) +gdk_win32_drag_finalize (GObject *object) { - GdkDragContext *drag; - GdkWin32DragContext *drag_win32; + GdkDrag *drag; + GdkWin32Drag *drag_win32; GdkSurface *drag_surface; g_assert (_win32_main_thread == NULL || _win32_main_thread == g_thread_self ()); - GDK_NOTE (DND, g_print ("gdk_win32_drag_context_finalize %p\n", object)); + GDK_NOTE (DND, g_print ("gdk_win32_drag_finalize %p\n", object)); - g_return_if_fail (GDK_IS_WIN32_DRAG_CONTEXT (object)); + g_return_if_fail (GDK_IS_WIN32_DRAG (object)); - drag = GDK_DRAG_CONTEXT (object); - drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + drag = GDK_DRAG (object); + drag_win32 = GDK_WIN32_DRAG (drag); - gdk_drag_context_set_cursor (drag, NULL); + gdk_drag_set_cursor (drag, NULL); g_set_object (&drag_win32->grab_surface, NULL); drag_surface = drag_win32->drag_surface; - G_OBJECT_CLASS (gdk_win32_drag_context_parent_class)->finalize (object); + G_OBJECT_CLASS (gdk_win32_drag_parent_class)->finalize (object); if (drag_surface) gdk_surface_destroy (drag_surface); @@ -783,30 +783,30 @@ gdk_win32_drag_context_finalize (GObject *object) /* Drag Contexts */ -static GdkDragContext * -gdk_drag_context_new (GdkDisplay *display, - GdkContentProvider *content, - GdkDragAction actions, - GdkDevice *device, - GdkDragProtocol protocol) +static GdkDrag * +gdk_drag_new (GdkDisplay *display, + GdkContentProvider *content, + GdkDragAction actions, + GdkDevice *device, + GdkDragProtocol protocol) { - GdkWin32DragContext *drag_win32; + GdkWin32Drag *drag_win32; GdkWin32Display *win32_display = GDK_WIN32_DISPLAY (display); - GdkDragContext *drag; + GdkDrag *drag; - drag_win32 = g_object_new (GDK_TYPE_WIN32_DRAG_CONTEXT, - "device", device, - "content", content, - NULL); + drag_win32 = g_object_new (GDK_TYPE_WIN32_DRAG, + "device", device, + "content", content, + NULL); - drag = GDK_DRAG_CONTEXT (drag_win32); + drag = GDK_DRAG (drag_win32); if (win32_display->has_fixed_scale) drag_win32->scale = win32_display->surface_scale; else drag_win32->scale = _gdk_win32_display_get_monitor_scale_factor (win32_display, NULL, NULL, NULL); - gdk_drag_context_set_actions (drag, actions, actions); + gdk_drag_set_actions (drag, actions, actions); drag_win32->protocol = protocol; return drag; @@ -828,15 +828,15 @@ gdk_drag_context_new (GdkDisplay *display, static enum_formats *enum_formats_new (GArray *formats); -/* Finds a GdkDragContext object that corresponds to a DnD operation +/* Finds a GdkDrag object that corresponds to a DnD operation * which is currently targetting the dest_window * Does not give a reference. */ -GdkDragContext * +GdkDrag * _gdk_win32_find_drag_for_dest_window (HWND dest_window) { GHashTableIter iter; - GdkWin32DragContext *drag_win32; + GdkWin32Drag *drag_win32; GdkWin32DnDThreadDoDragDrop *ddd; GdkWin32Clipdrop *clipdrop = _gdk_win32_clipdrop_get (); @@ -844,7 +844,7 @@ _gdk_win32_find_drag_for_dest_window (HWND dest_window) while (g_hash_table_iter_next (&iter, (gpointer *) &drag_win32, (gpointer *) &ddd)) if (ddd->src_context->dest_window_handle == dest_window) - return GDK_DRAG_CONTEXT (drag_win32); + return GDK_DRAG (drag_win32); return NULL; } @@ -888,7 +888,7 @@ static gboolean notify_dnd_enter (gpointer user_data) { GdkWin32DnDEnterLeaveNotify *notify = (GdkWin32DnDEnterLeaveNotify *) user_data; - GdkWin32DragContext *drag_win32 = GDK_WIN32_DRAG_CONTEXT (notify->opaque_context); + GdkWin32Drag *drag_win32 = GDK_WIN32_DRAG (notify->opaque_context); drag_win32->dest_window = notify->target_window_handle; @@ -901,7 +901,7 @@ static gboolean notify_dnd_leave (gpointer user_data) { GdkWin32DnDEnterLeaveNotify *notify = (GdkWin32DnDEnterLeaveNotify *) user_data; - GdkWin32DragContext *drag_win32 = GDK_WIN32_DRAG_CONTEXT (notify->opaque_context); + GdkWin32Drag *drag_win32 = GDK_WIN32_DRAG (notify->opaque_context); if (notify->target_window_handle != drag_win32->dest_window) g_warning ("DnD leave says that the window handle is 0x%p, but drag has 0x%p", notify->target_window_handle, drag_win32->dest_window); @@ -998,7 +998,7 @@ idropsource_queryinterface (LPDROPSOURCE This, static gboolean unref_context_in_main_thread (gpointer opaque_context) { - GdkDragContext *drag = GDK_DRAG_CONTEXT (opaque_context); + GdkDrag *drag = GDK_DRAG (opaque_context); g_clear_object (&drag); @@ -1066,21 +1066,21 @@ idropsource_querycontinuedrag (LPDROPSOURCE This, } static void -maybe_emit_action_changed (GdkWin32DragContext *drag_win32, +maybe_emit_action_changed (GdkWin32Drag *drag_win32, GdkDragAction actions) { if (actions != drag_win32->current_action) { drag_win32->current_action = actions; - g_signal_emit_by_name (GDK_DRAG_CONTEXT (drag_win32), "action-changed", actions); + g_signal_emit_by_name (GDK_DRAG (drag_win32), "action-changed", actions); } } void -_gdk_win32_local_drag_give_feedback (GdkDragContext *drag, +_gdk_win32_local_drag_give_feedback (GdkDrag *drag, GdkDragAction actions) { - GdkWin32DragContext *drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + GdkWin32Drag *drag_win32 = GDK_WIN32_DRAG (drag); if (drag_win32->drag_status == GDK_DRAG_STATUS_MOTION_WAIT) drag_win32->drag_status = GDK_DRAG_STATUS_DRAG; @@ -1101,8 +1101,8 @@ give_feedback (gpointer user_data) if (ddd) { - GdkDragContext *drag = GDK_DRAG_CONTEXT (feedback->base.opaque_context); - GdkWin32DragContext *drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + GdkDrag *drag = GDK_DRAG (feedback->base.opaque_context); + GdkWin32Drag *drag_win32 = GDK_WIN32_DRAG (drag); GDK_NOTE (DND, g_print ("gdk_dnd_handle_drag_status: 0x%p\n", drag)); @@ -1587,13 +1587,13 @@ static IEnumFORMATETCVtbl ief_vtbl = { }; static source_drag_context * -source_context_new (GdkDragContext *drag, +source_context_new (GdkDrag *drag, GdkContentFormats *formats) { - GdkWin32DragContext *drag_win32; + GdkWin32Drag *drag_win32; source_drag_context *result; - drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + drag_win32 = GDK_WIN32_DRAG (drag); result = g_new0 (source_drag_context, 1); result->drag = g_object_ref (drag); @@ -1611,7 +1611,7 @@ source_context_new (GdkDragContext *drag, } static data_object * -data_object_new (GdkDragContext *drag) +data_object_new (GdkDrag *drag) { data_object *result; const char * const *mime_types; @@ -1624,7 +1624,7 @@ data_object_new (GdkDragContext *drag) result->drag = drag; result->formats = g_array_new (FALSE, FALSE, sizeof (GdkWin32ContentFormatPair)); - mime_types = gdk_content_formats_get_mime_types (gdk_drag_context_get_formats (drag), &n_mime_types); + mime_types = gdk_content_formats_get_mime_types (gdk_drag_get_formats (drag), &n_mime_types); for (i = 0; i < n_mime_types; i++) { @@ -1701,7 +1701,7 @@ create_drag_surface (GdkDisplay *display) return surface; } -GdkDragContext * +GdkDrag * _gdk_win32_surface_drag_begin (GdkSurface *surface, GdkDevice *device, GdkContentProvider *content, @@ -1709,19 +1709,19 @@ _gdk_win32_surface_drag_begin (GdkSurface *surface, gint dx, gint dy) { - GdkDragContext *drag; - GdkWin32DragContext *drag_win32; + GdkDrag *drag; + GdkWin32Drag *drag_win32; GdkWin32Clipdrop *clipdrop = _gdk_win32_clipdrop_get (); int x_root, y_root; g_return_val_if_fail (surface != NULL, NULL); - drag = gdk_drag_context_new (gdk_surface_get_display (surface), - content, - actions, - device, - use_ole2_dnd ? GDK_DRAG_PROTO_OLE2 : GDK_DRAG_PROTO_LOCAL); - drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + drag = gdk_drag_new (gdk_surface_get_display (surface), + content, + actions, + device, + use_ole2_dnd ? GDK_DRAG_PROTO_OLE2 : GDK_DRAG_PROTO_LOCAL); + drag_win32 = GDK_WIN32_DRAG (drag); g_set_object (&drag->source_surface, surface); @@ -1752,8 +1752,7 @@ _gdk_win32_surface_drag_begin (GdkSurface *surface, source_drag_context *source_ctx; data_object *data_obj; - source_ctx = source_context_new (drag, - gdk_drag_context_get_formats (drag)); + source_ctx = source_context_new (drag, gdk_drag_get_formats (drag)); data_obj = data_object_new (drag); ddd->base.item_type = GDK_WIN32_DND_THREAD_QUEUE_ITEM_DO_DRAG_DROP; @@ -1830,12 +1829,12 @@ find_window_enum_proc (HWND hwnd, * drop targets about drags that move over them. */ static HWND -gdk_win32_drag_context_find_window (GdkDragContext *drag, - GdkSurface *drag_surface, - gint x_root, - gint y_root) +gdk_win32_drag_find_window (GdkDrag *drag, + GdkSurface *drag_surface, + gint x_root, + gint y_root) { - GdkWin32DragContext *drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + GdkWin32Drag *drag_win32 = GDK_WIN32_DRAG (drag); find_window_enum_arg a; HWND result; @@ -1848,14 +1847,14 @@ gdk_win32_drag_context_find_window (GdkDragContext *drag, a.result = INVALID_HANDLE_VALUE; GDK_NOTE (DND, - g_print ("gdk_win32_drag_context_find_window: %p %+d%+d\n", + g_print ("gdk_win32_drag_find_window: %p %+d%+d\n", (drag_surface ? GDK_SURFACE_HWND (drag_surface) : NULL), a.x, a.y)); EnumWindows (find_window_enum_proc, (LPARAM) &a); GDK_NOTE (DND, - g_print ("gdk_win32_drag_context_find_window: %p %+d%+d: %p\n", + g_print ("gdk_win32_drag_find_window: %p %+d%+d: %p\n", (drag_surface ? GDK_SURFACE_HWND (drag_surface) : NULL), x_root, y_root, a.result)); @@ -1900,7 +1899,7 @@ _gdk_win32_get_drop_for_dest_window (HWND dest_window) } static gboolean -gdk_win32_local_drag_motion (GdkDragContext *drag, +gdk_win32_local_drag_motion (GdkDrag *drag, HWND dest_window, gint x_root, gint y_root, @@ -1908,7 +1907,7 @@ gdk_win32_local_drag_motion (GdkDragContext *drag, DWORD key_state, guint32 time_) { - GdkWin32DragContext *drag_win32; + GdkWin32Drag *drag_win32; GdkDrop *drop; GdkDragAction actions; @@ -1917,11 +1916,11 @@ gdk_win32_local_drag_motion (GdkDragContext *drag, g_return_val_if_fail (drag != NULL, FALSE); - drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + drag_win32 = GDK_WIN32_DRAG (drag); drop = _gdk_win32_get_drop_for_dest_window (drag_win32->dest_window); - actions = gdk_drag_context_get_actions (drag); + actions = gdk_drag_get_actions (drag); GDK_NOTE (DND, g_print ("gdk_win32_local_drag_motion: @ %+d:%+d possible=%s\n" " dest=%p (current %p) drop=%p drag=%p:{actions=%s,suggested=%s,action=%s}\n", @@ -1929,7 +1928,7 @@ gdk_win32_local_drag_motion (GdkDragContext *drag, _gdk_win32_drag_action_to_string (possible_actions), dest_window, drag_win32->dest_window, drop, drag, _gdk_win32_drag_action_to_string (actions), - _gdk_win32_drag_action_to_string (gdk_drag_context_get_suggested_action (drag)), + _gdk_win32_drag_action_to_string (gdk_drag_get_suggested_action (drag)), _gdk_win32_drag_action_to_string (drag->action))); if (drag_win32->dest_window != dest_window) @@ -1962,7 +1961,7 @@ gdk_win32_local_drag_motion (GdkDragContext *drag, drag_win32->drag_status == GDK_DRAG_STATUS_DRAG && _gdk_win32_local_drop_target_will_emit_motion (drop, x_root, y_root, key_state)) { - actions = gdk_drag_context_get_actions (drag); + actions = gdk_drag_get_actions (drag); drag_win32->drag_status = GDK_DRAG_STATUS_MOTION_WAIT; _gdk_win32_local_drop_target_dragover (drop, drag, x_root, y_root, key_state, time_, &actions); @@ -1974,31 +1973,31 @@ gdk_win32_local_drag_motion (GdkDragContext *drag, " drag=%p:{actions=%s,suggested=%s,action=%s}\n", (drop != NULL && drag_win32->drag_status == GDK_DRAG_STATUS_DRAG) ? "TRUE" : "FALSE", drag, - _gdk_win32_drag_action_to_string (gdk_drag_context_get_actions (drag)), - _gdk_win32_drag_action_to_string (gdk_drag_context_get_suggested_action (drag)), + _gdk_win32_drag_action_to_string (gdk_drag_get_actions (drag)), + _gdk_win32_drag_action_to_string (gdk_drag_get_suggested_action (drag)), _gdk_win32_drag_action_to_string (drag->action))); return (drop != NULL && drag_win32->drag_status == GDK_DRAG_STATUS_DRAG); } static void send_source_state_update (GdkWin32Clipdrop *clipdrop, - GdkWin32DragContext *context_win32, + GdkWin32Drag *drag_win32, gpointer *ddd) { GdkWin32DnDThreadUpdateDragState *status = g_new0 (GdkWin32DnDThreadUpdateDragState, 1); status->base.item_type = GDK_WIN32_DND_THREAD_QUEUE_ITEM_UPDATE_DRAG_STATE; status->opaque_ddd = ddd; - status->produced_util_data = context_win32->util_data; + status->produced_util_data = drag_win32->util_data; increment_dnd_queue_counter (); g_async_queue_push (clipdrop->dnd_queue, status); API_CALL (PostThreadMessage, (clipdrop->dnd_thread_id, thread_wakeup_message, 0, 0)); } static void -gdk_win32_drag_context_drag_drop (GdkDragContext *drag, - guint32 time_) +gdk_win32_drag_drop (GdkDrag *drag, + guint32 time_) { - GdkWin32DragContext *drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + GdkWin32Drag *drag_win32 = GDK_WIN32_DRAG (drag); GdkWin32Clipdrop *clipdrop = _gdk_win32_clipdrop_get (); g_assert (_win32_main_thread == NULL || @@ -2006,7 +2005,7 @@ gdk_win32_drag_context_drag_drop (GdkDragContext *drag, g_return_if_fail (drag != NULL); - GDK_NOTE (DND, g_print ("gdk_win32_drag_context_drag_drop\n")); + GDK_NOTE (DND, g_print ("gdk_win32_drag_drop\n")); if (drag_win32->protocol == GDK_DRAG_PROTO_LOCAL) { @@ -2016,10 +2015,10 @@ gdk_win32_drag_context_drag_drop (GdkDragContext *drag, { GdkDragAction actions; - actions = gdk_drag_context_get_actions (drag); + actions = gdk_drag_get_actions (drag); _gdk_win32_local_drop_target_drop (drop, drag, time_, &actions); maybe_emit_action_changed (drag_win32, actions); - _gdk_win32_local_drag_context_drop_response (drag, actions); + _gdk_win32_local_drag_drop_response (drag, actions); } } else if (drag_win32->protocol == GDK_DRAG_PROTO_OLE2) @@ -2034,10 +2033,10 @@ gdk_win32_drag_context_drag_drop (GdkDragContext *drag, } static void -gdk_win32_drag_context_drag_abort (GdkDragContext *drag, - guint32 time_) +gdk_win32_drag_abort (GdkDrag *drag, + guint32 time_) { - GdkWin32DragContext *drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + GdkWin32Drag *drag_win32 = GDK_WIN32_DRAG (drag); GdkWin32Clipdrop *clipdrop = _gdk_win32_clipdrop_get (); g_assert (_win32_main_thread == NULL || @@ -2045,7 +2044,7 @@ gdk_win32_drag_context_drag_abort (GdkDragContext *drag, g_return_if_fail (drag != NULL); - GDK_NOTE (DND, g_print ("gdk_win32_drag_context_drag_abort\n")); + GDK_NOTE (DND, g_print ("gdk_win32_drag_abort\n")); if (drag_win32->protocol == GDK_DRAG_PROTO_OLE2) { @@ -2059,12 +2058,12 @@ gdk_win32_drag_context_drag_abort (GdkDragContext *drag, } static void -gdk_win32_drag_context_set_cursor (GdkDragContext *drag, - GdkCursor *cursor) +gdk_win32_drag_set_cursor (GdkDrag *drag, + GdkCursor *cursor) { - GdkWin32DragContext *drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + GdkWin32Drag *drag_win32 = GDK_WIN32_DRAG (drag); - GDK_NOTE (DND, g_print ("gdk_win32_drag_context_set_cursor: 0x%p 0x%p\n", drag, cursor)); + GDK_NOTE (DND, g_print ("gdk_win32_drag_set_cursor: 0x%p 0x%p\n", drag, cursor)); if (!g_set_object (&drag_win32->cursor, cursor)) return; @@ -2092,7 +2091,7 @@ ease_out_cubic (double t) typedef struct _GdkDragAnim GdkDragAnim; struct _GdkDragAnim { - GdkWin32DragContext *drag; + GdkWin32Drag *drag; GdkFrameClock *frame_clock; gint64 start_time; }; @@ -2108,7 +2107,7 @@ static gboolean gdk_drag_anim_timeout (gpointer data) { GdkDragAnim *anim = data; - GdkWin32DragContext *drag = anim->drag; + GdkWin32Drag *drag = anim->drag; GdkFrameClock *frame_clock = anim->frame_clock; gint64 current_time; double f; @@ -2136,10 +2135,10 @@ gdk_drag_anim_timeout (gpointer data) } static void -gdk_win32_drag_context_drop_done (GdkDragContext *drag, - gboolean success) +gdk_win32_drag_drop_done (GdkDrag *drag, + gboolean success) { - GdkWin32DragContext *drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + GdkWin32Drag *drag_win32 = GDK_WIN32_DRAG (drag); GdkDragAnim *anim; /* cairo_surface_t *win_surface; @@ -2148,7 +2147,7 @@ gdk_win32_drag_context_drop_done (GdkDragContext *drag, */ guint id; - GDK_NOTE (DND, g_print ("gdk_win32_drag_context_drop_done: 0x%p %s\n", + GDK_NOTE (DND, g_print ("gdk_win32_drag_drop_done: 0x%p %s\n", drag, success ? "dropped successfully" : "dropped unsuccessfully")); @@ -2207,7 +2206,7 @@ gdk_win32_drag_context_drop_done (GdkDragContext *drag, anim->frame_clock = gdk_surface_get_frame_clock (drag_win32->drag_surface); anim->start_time = gdk_frame_clock_get_frame_time (anim->frame_clock); - GDK_NOTE (DND, g_print ("gdk_win32_drag_context_drop_done: animate the drag window from %d : %d to %d : %d\n", + GDK_NOTE (DND, g_print ("gdk_win32_drag_drop_done: animate the drag window from %d : %d to %d : %d\n", drag_win32->util_data.last_x, drag_win32->util_data.last_y, drag_win32->start_x, drag_win32->start_y)); @@ -2218,9 +2217,9 @@ gdk_win32_drag_context_drop_done (GdkDragContext *drag, } static gboolean -drag_context_grab (GdkDragContext *drag) +drag_context_grab (GdkDrag *drag) { - GdkWin32DragContext *drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + GdkWin32Drag *drag_win32 = GDK_WIN32_DRAG (drag); GdkSeatCapabilities capabilities; GdkSeat *seat; GdkCursor *cursor; @@ -2232,11 +2231,11 @@ drag_context_grab (GdkDragContext *drag) if (!drag_win32->grab_surface) return FALSE; - seat = gdk_device_get_seat (gdk_drag_context_get_device (drag)); + seat = gdk_device_get_seat (gdk_drag_get_device (drag)); capabilities = GDK_SEAT_CAPABILITY_ALL; - cursor = gdk_drag_get_cursor (drag, gdk_drag_context_get_selected_action (drag)); + cursor = gdk_drag_get_cursor (drag, gdk_drag_get_selected_action (drag)); g_set_object (&drag_win32->cursor, cursor); if (gdk_seat_grab (seat, drag_win32->grab_surface, @@ -2252,9 +2251,9 @@ drag_context_grab (GdkDragContext *drag) } static void -drag_context_ungrab (GdkDragContext *drag) +drag_context_ungrab (GdkDrag *drag) { - GdkWin32DragContext *drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + GdkWin32Drag *drag_win32 = GDK_WIN32_DRAG (drag); GDK_NOTE (DND, g_print ("drag_context_ungrab: 0x%p 0x%p\n", drag, @@ -2271,10 +2270,10 @@ drag_context_ungrab (GdkDragContext *drag) } static void -gdk_win32_drag_context_cancel (GdkDragContext *drag, - GdkDragCancelReason reason) +gdk_win32_drag_cancel (GdkDrag *drag, + GdkDragCancelReason reason) { - GdkWin32DragContext *drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + GdkWin32Drag *drag_win32 = GDK_WIN32_DRAG (drag); const gchar *reason_str = NULL; switch (reason) @@ -2293,7 +2292,7 @@ gdk_win32_drag_context_cancel (GdkDragContext *drag, break; } - GDK_NOTE (DND, g_print ("gdk_win32_drag_context_cancel: 0x%p %s\n", + GDK_NOTE (DND, g_print ("gdk_win32_drag_cancel: 0x%p %s\n", drag, reason_str)); @@ -2305,20 +2304,20 @@ gdk_win32_drag_context_cancel (GdkDragContext *drag, drop = NULL; } - gdk_drag_context_set_cursor (drag, NULL); + gdk_drag_set_cursor (drag, NULL); drag_context_ungrab (drag); gdk_drag_drop_done (drag, FALSE); } static void -gdk_win32_drag_context_drop_performed (GdkDragContext *drag, - guint32 time_) +gdk_win32_drag_drop_performed (GdkDrag *drag, + guint32 time_) { - GDK_NOTE (DND, g_print ("gdk_win32_drag_context_drop_performed: 0x%p %u\n", + GDK_NOTE (DND, g_print ("gdk_win32_drag_drop_performed: 0x%p %u\n", drag, time_)); gdk_drag_drop (drag, time_); - gdk_drag_context_set_cursor (drag, NULL); + gdk_drag_set_cursor (drag, NULL); drag_context_ungrab (drag); } @@ -2326,33 +2325,33 @@ gdk_win32_drag_context_drop_performed (GdkDragContext *drag, #define SMALL_STEP 1 static void -gdk_local_drag_update (GdkDragContext *drag, - gdouble x_root, - gdouble y_root, - DWORD grfKeyState, - guint32 evtime) +gdk_local_drag_update (GdkDrag *drag, + gdouble x_root, + gdouble y_root, + DWORD grfKeyState, + guint32 evtime) { - GdkWin32DragContext *drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + GdkWin32Drag *drag_win32 = GDK_WIN32_DRAG (drag); HWND dest_window; g_assert (_win32_main_thread == NULL || _win32_main_thread == g_thread_self ()); - dest_window = gdk_win32_drag_context_find_window (drag, - drag_win32->drag_surface, - x_root, y_root); + dest_window = gdk_win32_drag_find_window (drag, + drag_win32->drag_surface, + x_root, y_root); gdk_win32_local_drag_motion (drag, dest_window, x_root, y_root, - gdk_drag_context_get_actions (drag), + gdk_drag_get_actions (drag), grfKeyState, evtime); } static gboolean -gdk_dnd_handle_motion_event (GdkDragContext *drag, +gdk_dnd_handle_motion_event (GdkDrag *drag, const GdkEventMotion *event) { GdkModifierType state; - GdkWin32DragContext *drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + GdkWin32Drag *drag_win32 = GDK_WIN32_DRAG (drag); DWORD key_state; if (!gdk_event_get_state ((GdkEvent *) event, &state)) @@ -2391,10 +2390,10 @@ gdk_dnd_handle_motion_event (GdkDragContext *drag, } static gboolean -gdk_dnd_handle_key_event (GdkDragContext *drag, +gdk_dnd_handle_key_event (GdkDrag *drag, const GdkEventKey *event) { - GdkWin32DragContext *drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + GdkWin32Drag *drag_win32 = GDK_WIN32_DRAG (drag); GdkModifierType state; GdkDevice *pointer; gint dx, dy; @@ -2413,7 +2412,7 @@ gdk_dnd_handle_key_event (GdkDragContext *drag, switch (event->keyval) { case GDK_KEY_Escape: - gdk_drag_context_cancel (drag, GDK_DRAG_CANCEL_USER_CANCELLED); + gdk_drag_cancel (drag, GDK_DRAG_CANCEL_USER_CANCELLED); return TRUE; case GDK_KEY_space: @@ -2421,13 +2420,13 @@ gdk_dnd_handle_key_event (GdkDragContext *drag, case GDK_KEY_ISO_Enter: case GDK_KEY_KP_Enter: case GDK_KEY_KP_Space: - if ((gdk_drag_context_get_selected_action (drag) != 0) && + if ((gdk_drag_get_selected_action (drag) != 0) && (drag_win32->dest_window != INVALID_HANDLE_VALUE)) { g_signal_emit_by_name (drag, "drop-performed"); } else - gdk_drag_context_cancel (drag, GDK_DRAG_CANCEL_NO_TARGET); + gdk_drag_cancel (drag, GDK_DRAG_CANCEL_NO_TARGET); return TRUE; @@ -2477,10 +2476,10 @@ gdk_dnd_handle_key_event (GdkDragContext *drag, } static gboolean -gdk_dnd_handle_grab_broken_event (GdkDragContext *drag, +gdk_dnd_handle_grab_broken_event (GdkDrag *drag, const GdkEventGrabBroken *event) { - GdkWin32DragContext *drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + GdkWin32Drag *drag_win32 = GDK_WIN32_DRAG (drag); GDK_NOTE (DND, g_print ("gdk_dnd_handle_grab_broken_event: 0x%p\n", drag)); @@ -2495,15 +2494,15 @@ gdk_dnd_handle_grab_broken_event (GdkDragContext *drag, return FALSE; if (gdk_event_get_device ((GdkEvent *) event) != - gdk_drag_context_get_device (drag)) + gdk_drag_get_device (drag)) return FALSE; - gdk_drag_context_cancel (drag, GDK_DRAG_CANCEL_ERROR); + gdk_drag_cancel (drag, GDK_DRAG_CANCEL_ERROR); return TRUE; } static gboolean -gdk_dnd_handle_button_event (GdkDragContext *drag, +gdk_dnd_handle_button_event (GdkDrag *drag, const GdkEventButton *event) { GDK_NOTE (DND, g_print ("gdk_dnd_handle_button_event: 0x%p\n", @@ -2515,22 +2514,22 @@ gdk_dnd_handle_button_event (GdkDragContext *drag, return FALSE; #endif - if ((gdk_drag_context_get_selected_action (drag) != 0)) + if ((gdk_drag_get_selected_action (drag) != 0)) { g_signal_emit_by_name (drag, "drop-performed"); } else - gdk_drag_context_cancel (drag, GDK_DRAG_CANCEL_NO_TARGET); + gdk_drag_cancel (drag, GDK_DRAG_CANCEL_NO_TARGET); /* Make sure GTK gets mouse release button event */ return FALSE; } gboolean -gdk_win32_drag_context_handle_event (GdkDragContext *drag, - const GdkEvent *event) +gdk_win32_drag_handle_event (GdkDrag *drag, + const GdkEvent *event) { - GdkWin32DragContext *drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + GdkWin32Drag *drag_win32 = GDK_WIN32_DRAG (drag); if (!drag_win32->grab_seat) return FALSE; @@ -2560,29 +2559,29 @@ gdk_win32_drag_context_handle_event (GdkDragContext *drag, } void -gdk_win32_drag_context_action_changed (GdkDragContext *drag, - GdkDragAction action) +gdk_win32_drag_action_changed (GdkDrag *drag, + GdkDragAction action) { GdkCursor *cursor; cursor = gdk_drag_get_cursor (drag, action); - gdk_drag_context_set_cursor (drag, cursor); + gdk_drag_set_cursor (drag, cursor); } static GdkSurface * -gdk_win32_drag_context_get_drag_surface (GdkDragContext *drag) +gdk_win32_drag_get_drag_surface (GdkDrag *drag) { - return GDK_WIN32_DRAG_CONTEXT (drag)->drag_surface; + return GDK_WIN32_DRAG (drag)->drag_surface; } static void -gdk_win32_drag_context_set_hotspot (GdkDragContext *drag, - gint hot_x, - gint hot_y) +gdk_win32_drag_set_hotspot (GdkDrag *drag, + gint hot_x, + gint hot_y) { - GdkWin32DragContext *drag_win32 = GDK_WIN32_DRAG_CONTEXT (drag); + GdkWin32Drag *drag_win32 = GDK_WIN32_DRAG (drag); - GDK_NOTE (DND, g_print ("gdk_drag_context_set_hotspot: 0x%p %d:%d\n", + GDK_NOTE (DND, g_print ("gdk_drag_set_hotspot: 0x%p %d:%d\n", drag, hot_x, hot_y)); @@ -2597,23 +2596,22 @@ gdk_win32_drag_context_set_hotspot (GdkDragContext *drag, } static void -gdk_win32_drag_context_class_init (GdkWin32DragContextClass *klass) +gdk_win32_drag_class_init (GdkWin32DragClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - GdkDragContextClass *context_class = GDK_DRAG_CONTEXT_CLASS (klass); + GdkDragClass *drag_class = GDK_DRAG_CLASS (klass); - object_class->finalize = gdk_win32_drag_context_finalize; + object_class->finalize = gdk_win32_drag_finalize; - context_class->drag_abort = gdk_win32_drag_context_drag_abort; - context_class->drag_drop = gdk_win32_drag_context_drag_drop; - - context_class->get_drag_surface = gdk_win32_drag_context_get_drag_surface; - context_class->set_hotspot = gdk_win32_drag_context_set_hotspot; - context_class->drop_done = gdk_win32_drag_context_drop_done; - context_class->set_cursor = gdk_win32_drag_context_set_cursor; - context_class->cancel = gdk_win32_drag_context_cancel; - context_class->drop_performed = gdk_win32_drag_context_drop_performed; - context_class->handle_event = gdk_win32_drag_context_handle_event; - context_class->action_changed = gdk_win32_drag_context_action_changed; + drag_class->drag_abort = gdk_win32_drag_abort; + drag_class->drag_drop = gdk_win32_drag_drop; + drag_class->get_drag_surface = gdk_win32_drag_get_drag_surface; + drag_class->set_hotspot = gdk_win32_drag_set_hotspot; + drag_class->drop_done = gdk_win32_drag_drop_done; + drag_class->set_cursor = gdk_win32_drag_set_cursor; + drag_class->cancel = gdk_win32_drag_cancel; + drag_class->drop_performed = gdk_win32_drag_drop_performed; + drag_class->handle_event = gdk_win32_drag_handle_event; + drag_class->action_changed = gdk_win32_drag_action_changed; } diff --git a/gdk/win32/gdkdrop-win32.c b/gdk/win32/gdkdrop-win32.c index 1ddba01f06..1525590716 100644 --- a/gdk/win32/gdkdrop-win32.c +++ b/gdk/win32/gdkdrop-win32.c @@ -41,7 +41,7 @@ #include "gdkdropprivate.h" -#include "gdkdnd.h" +#include "gdkdrag.h" #include "gdkproperty.h" #include "gdkinternals.h" #include "gdkprivate-win32.h" @@ -172,7 +172,7 @@ gdk_win32_drop_finalize (GObject *object) static GdkDrop * gdk_drop_new (GdkDisplay *display, GdkDevice *device, - GdkDragContext *drag, + GdkDrag *drag, GdkContentFormats *formats, GdkSurface *surface, GdkDragProtocol protocol) @@ -453,7 +453,7 @@ set_source_actions_helper (GdkDrop *drop, } void -_gdk_win32_local_drop_target_dragenter (GdkDragContext *drag, +_gdk_win32_local_drop_target_dragenter (GdkDrag *drag, GdkSurface *dest_surface, gint x_root, gint y_root, @@ -478,7 +478,7 @@ _gdk_win32_local_drop_target_dragenter (GdkDragContext *drag, drop = gdk_drop_new (display, gdk_seat_get_pointer (gdk_display_get_default_seat (display)), drag, - gdk_content_formats_ref (gdk_drag_context_get_formats (drag)), + gdk_content_formats_ref (gdk_drag_get_formats (drag)), dest_surface, GDK_DRAG_PROTO_LOCAL); drop_win32 = GDK_WIN32_DROP (drop); @@ -518,7 +518,7 @@ idroptarget_dragenter (LPDROPTARGET This, GdkDisplay *display; gint pt_x; gint pt_y; - GdkDragContext *drag; + GdkDrag *drag; GdkDragAction source_actions; GdkDragAction dest_actions; @@ -531,7 +531,7 @@ idroptarget_dragenter (LPDROPTARGET This, g_clear_object (&ctx->drop); - /* Try to find the GdkDragContext object for this DnD operation, + /* Try to find the GdkDrag object for this DnD operation, * if it originated in our own application. */ drag = NULL; @@ -593,7 +593,7 @@ _gdk_win32_local_drop_target_will_emit_motion (GdkDrop *drop, void _gdk_win32_local_drop_target_dragover (GdkDrop *drop, - GdkDragContext *drag, + GdkDrag *drag, gint x_root, gint y_root, DWORD grfKeyState, @@ -710,7 +710,7 @@ idroptarget_dragleave (LPDROPTARGET This) void _gdk_win32_local_drop_target_drop (GdkDrop *drop, - GdkDragContext *drag, + GdkDrag *drag, guint32 time_, GdkDragAction *actions) { @@ -1065,7 +1065,7 @@ gdk_win32_drop_status (GdkDrop *drop, GdkDragAction actions) { GdkWin32Drop *drop_win32 = GDK_WIN32_DROP (drop); - GdkDragContext *drag; + GdkDrag *drag; g_return_if_fail (drop != NULL); @@ -1090,7 +1090,7 @@ static void gdk_win32_drop_finish (GdkDrop *drop, GdkDragAction action) { - GdkDragContext *drag; + GdkDrag *drag; GdkWin32Drop *drop_win32 = GDK_WIN32_DROP (drop); g_return_if_fail (drop != NULL); @@ -1107,7 +1107,7 @@ gdk_win32_drop_finish (GdkDrop *drop, drag = gdk_drop_get_drag (drop); if (drag != NULL) - _gdk_win32_local_drag_context_drop_response (drag, action); + _gdk_win32_local_drag_drop_response (drag, action); */ } diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index 9b2d88110f..e8934b9be8 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -59,7 +59,7 @@ #include "gdkwin32dnd-private.h" #include "gdkdisplay-win32.h" //#include "gdkselection-win32.h" -#include "gdkdndprivate.h" +#include "gdkdragprivate.h" #include <windowsx.h> @@ -873,7 +873,7 @@ _gdk_win32_print_event (const GdkEvent *event) if (event->dnd.drop != NULL) g_print ("ctx:%p: %s", event->dnd.drop, - _gdk_win32_drag_protocol_to_string (GDK_WIN32_DRAG_CONTEXT (event->dnd.drop)->protocol)); + _gdk_win32_drag_protocol_to_string (GDK_WIN32_DRAG (event->dnd.drop)->protocol)); break; case GDK_SCROLL: g_print ("(%.4g,%.4g) (%.4g,%.4g) %s ", diff --git a/gdk/win32/gdkgeometry-win32.c b/gdk/win32/gdkgeometry-win32.c index d3119d4b49..f800fa8cc6 100644 --- a/gdk/win32/gdkgeometry-win32.c +++ b/gdk/win32/gdkgeometry-win32.c @@ -131,8 +131,7 @@ _gdk_win32_surface_tmp_unset_bg (GdkSurface *window, return; if (_gdk_surface_has_impl (window) && - GDK_SURFACE_IS_WIN32 (window) && - window->surface_type != GDK_SURFACE_FOREIGN) + GDK_SURFACE_IS_WIN32 (window)) tmp_unset_bg (window); if (recurse) @@ -164,8 +163,7 @@ _gdk_win32_surface_tmp_reset_bg (GdkSurface *window, return; if (_gdk_surface_has_impl (window) && - GDK_SURFACE_IS_WIN32 (window) && - window->surface_type != GDK_SURFACE_FOREIGN) + GDK_SURFACE_IS_WIN32 (window)) { tmp_reset_bg (window); } diff --git a/gdk/win32/gdkprivate-win32.h b/gdk/win32/gdkprivate-win32.h index b4352f89c6..4f8a3e2f30 100644 --- a/gdk/win32/gdkprivate-win32.h +++ b/gdk/win32/gdkprivate-win32.h @@ -423,12 +423,12 @@ void _gdk_win32_display_create_surface_impl (GdkDisplay *display, void _gdk_win32_surface_register_dnd (GdkSurface *window); void _gdk_win32_surface_unregister_dnd (GdkSurface *window); -GdkDragContext *_gdk_win32_surface_drag_begin (GdkSurface *window, - GdkDevice *device, - GdkContentProvider *content, - GdkDragAction actions, - gint x_root, - gint y_root); +GdkDrag *_gdk_win32_surface_drag_begin (GdkSurface *window, + GdkDevice *device, + GdkContentProvider *content, + GdkDragAction actions, + gint x_root, + gint y_root); /* Stray GdkWin32Screen members */ gboolean _gdk_win32_get_setting (const gchar *name, GValue *value); diff --git a/gdk/win32/gdksurface-win32.c b/gdk/win32/gdksurface-win32.c index af46bd7b28..ee922825fe 100644 --- a/gdk/win32/gdksurface-win32.c +++ b/gdk/win32/gdksurface-win32.c @@ -126,9 +126,6 @@ static void gdk_win32_impl_frame_clock_after_paint (GdkFrameClock *clock, static gboolean _gdk_surface_get_functions (GdkSurface *window, GdkWMFunction *functions); -#define SURFACE_IS_TOPLEVEL(window) \ - (GDK_SURFACE_TYPE (window) != GDK_SURFACE_FOREIGN) - struct _GdkWin32Surface { GdkSurface parent; }; @@ -595,22 +592,14 @@ _gdk_win32_display_create_surface_impl (GdkDisplay *display, /* The common code warns for this case. */ hparent = GetDesktopWindow (); } - /* Children of foreign windows aren't toplevel windows */ - if (real_parent != NULL && GDK_SURFACE_TYPE (real_parent) == GDK_SURFACE_FOREIGN) - { - dwStyle = WS_CHILDWINDOW | WS_CLIPCHILDREN; - } + /* MSDN: We need WS_CLIPCHILDREN and WS_CLIPSIBLINGS for GL Context Creation */ + if (window->surface_type == GDK_SURFACE_TOPLEVEL) + dwStyle = WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS; else - { - /* MSDN: We need WS_CLIPCHILDREN and WS_CLIPSIBLINGS for GL Context Creation */ - if (window->surface_type == GDK_SURFACE_TOPLEVEL) - dwStyle = WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS; - else - dwStyle = WS_OVERLAPPED | WS_MINIMIZEBOX | WS_SYSMENU | WS_CAPTION | WS_THICKFRAME | WS_CLIPCHILDREN; + dwStyle = WS_OVERLAPPED | WS_MINIMIZEBOX | WS_SYSMENU | WS_CAPTION | WS_THICKFRAME | WS_CLIPCHILDREN; - offset_x = _gdk_offset_x; - offset_y = _gdk_offset_y; - } + offset_x = _gdk_offset_x; + offset_y = _gdk_offset_y; break; case GDK_SURFACE_TEMP: @@ -645,8 +634,8 @@ _gdk_win32_display_create_surface_impl (GdkDisplay *display, x = y = CW_USEDEFAULT; } else - { - /* TEMP, FOREIGN: Put these where requested */ + { + /* TEMP: Put these where requested */ x = real_x; y = real_y; } @@ -810,9 +799,8 @@ gdk_win32_surface_destroy_notify (GdkSurface *window) if (!GDK_SURFACE_DESTROYED (window)) { - if (GDK_SURFACE_TYPE (window) != GDK_SURFACE_FOREIGN) - g_warning ("window %p unexpectedly destroyed", - GDK_SURFACE_HWND (window)); + g_warning ("window %p unexpectedly destroyed", + GDK_SURFACE_HWND (window)); _gdk_surface_destroy (window, TRUE); } @@ -1380,8 +1368,7 @@ gdk_win32_surface_move_resize (GdkSurface *window, out: surface_impl->inhibit_configure = FALSE; - if (SURFACE_IS_TOPLEVEL (window)) - _gdk_win32_emit_configure_event (window); + _gdk_win32_emit_configure_event (window); } static void @@ -2175,10 +2162,6 @@ _gdk_win32_surface_lacks_wm_decorations (GdkSurface *window) if (GDK_SURFACE_DESTROYED (window)) return FALSE; - /* only toplevels can be layered */ - if (!SURFACE_IS_TOPLEVEL (window)) - return FALSE; - impl = GDK_SURFACE_IMPL_WIN32 (window->impl); /* This is because GTK calls gdk_surface_set_decorations (window, 0), @@ -5048,7 +5031,7 @@ gdk_win32_surface_set_opacity (GdkSurface *window, g_return_if_fail (GDK_IS_SURFACE (window)); - if (!SURFACE_IS_TOPLEVEL (window) || GDK_SURFACE_DESTROYED (window)) + if (GDK_SURFACE_DESTROYED (window)) return; if (opacity < 0) diff --git a/gdk/win32/gdkwin32dnd-private.h b/gdk/win32/gdkwin32dnd-private.h index 0c8d89f100..efe081f77e 100644 --- a/gdk/win32/gdkwin32dnd-private.h +++ b/gdk/win32/gdkwin32dnd-private.h @@ -26,12 +26,12 @@ G_BEGIN_DECLS -typedef struct _GdkWin32DragContextUtilityData GdkWin32DragContextUtilityData; +typedef struct _GdkWin32DragUtilityData GdkWin32DragUtilityData; /* This structure is deliberately designed to be * copyable with memcpy(), i.e. no pointers inside. */ -struct _GdkWin32DragContextUtilityData +struct _GdkWin32DragUtilityData { gint last_x; /* Coordinates from last event, in GDK space */ gint last_y; @@ -39,15 +39,15 @@ struct _GdkWin32DragContextUtilityData GdkWin32DndState state; }; -struct _GdkWin32DragContext +struct _GdkWin32Drag { - GdkDragContext drag; + GdkDrag drag; /* The drag protocol being used */ GdkDragProtocol protocol; /* The surface used for grabs. - * Usually the same as GdkDragContext->source_surface + * Usually the same as GdkDrag->source_surface */ GdkSurface *grab_surface; @@ -71,7 +71,7 @@ struct _GdkWin32DragContext */ GdkDragAction current_action; - GdkWin32DragContextUtilityData util_data; + GdkWin32DragUtilityData util_data; guint scale; /* Temporarily caches the HiDPI scale */ gint hot_x; /* Hotspot offset from the top-left of the drag-window, scaled (can be added to GDK space coordinates) */ @@ -84,23 +84,23 @@ struct _GdkWin32DragContext guint handle_events : 1; /* Whether handle_event() should do anything */ }; -struct _GdkWin32DragContextClass +struct _GdkWin32DragClass { - GdkDragContextClass parent_class; + GdkDragClass parent_class; }; gpointer _gdk_win32_dnd_thread_main (gpointer data); -GdkDragContext *_gdk_win32_find_drag_for_dest_window (HWND dest_window); -GdkDrop *_gdk_win32_get_drop_for_dest_surface (GdkSurface *dest); +GdkDrag *_gdk_win32_find_drag_for_dest_window (HWND dest_window); +GdkDrop *_gdk_win32_get_drop_for_dest_surface (GdkSurface *dest); gboolean _gdk_win32_local_drop_target_will_emit_motion (GdkDrop *drop, gint x_root, gint y_root, DWORD grfKeyState); -void _gdk_win32_local_drop_target_dragenter (GdkDragContext *drag, +void _gdk_win32_local_drop_target_dragenter (GdkDrag *drag, GdkSurface *dest_surface, gint x_root, gint y_root, @@ -108,22 +108,22 @@ void _gdk_win32_local_drop_target_dragenter (GdkDragContext *drag, guint32 time_, GdkDragAction *actions); void _gdk_win32_local_drop_target_dragover (GdkDrop *drop, - GdkDragContext *drag, + GdkDrag *drag, gint x_root, gint y_root, DWORD grfKeyState, guint32 time_, GdkDragAction *actions); -void _gdk_win32_local_drop_target_dragleave (GdkDrop *drop, - guint32 time_); +void _gdk_win32_local_drop_target_dragleave (GdkDrop *drop, + guint32 time_); void _gdk_win32_local_drop_target_drop (GdkDrop *drop, - GdkDragContext *drag, + GdkDrag *drag, guint32 time_, GdkDragAction *actions); -void _gdk_win32_local_drag_give_feedback (GdkDragContext *drag, +void _gdk_win32_local_drag_give_feedback (GdkDrag *drag, GdkDragAction actions); -void _gdk_win32_local_drag_context_drop_response (GdkDragContext *drag, +void _gdk_win32_local_drag_drop_response (GdkDrag *drag, GdkDragAction action); diff --git a/gdk/win32/gdkwin32dnd.h b/gdk/win32/gdkwin32dnd.h index 31a0ee85e4..af6cc402dd 100644 --- a/gdk/win32/gdkwin32dnd.h +++ b/gdk/win32/gdkwin32dnd.h @@ -26,23 +26,23 @@ G_BEGIN_DECLS -#define GDK_TYPE_WIN32_DRAG_CONTEXT (gdk_win32_drag_context_get_type ()) -#define GDK_WIN32_DRAG_CONTEXT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_WIN32_DRAG_CONTEXT, GdkWin32DragContext)) -#define GDK_WIN32_DRAG_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_WIN32_DRAG_CONTEXT, GdkWin32DragContextClass)) -#define GDK_IS_WIN32_DRAG_CONTEXT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WIN32_DRAG_CONTEXT)) -#define GDK_IS_WIN32_DRAG_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_WIN32_DRAG_CONTEXT)) -#define GDK_WIN32_DRAG_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_WIN32_DRAG_CONTEXT, GdkWin32DragContextClass)) +#define GDK_TYPE_WIN32_DRAG (gdk_win32_drag_get_type ()) +#define GDK_WIN32_DRAG(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_WIN32_DRAG, GdkWin32Drag)) +#define GDK_WIN32_DRAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_WIN32_DRAG, GdkWin32DragClass)) +#define GDK_IS_WIN32_DRAG(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WIN32_DRAG)) +#define GDK_IS_WIN32_DRAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_WIN32_DRAG)) +#define GDK_WIN32_DRAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_WIN32_DRAG, GdkWin32DragClass)) #ifdef GDK_COMPILATION -typedef struct _GdkWin32DragContext GdkWin32DragContext; +typedef struct _GdkWin32Drag GdkWin32Drag; #else -typedef GdkDragContext GdkWin32DragContext; +typedef GdkDrag GdkWin32Drag; #endif -typedef struct _GdkWin32DragContextClass GdkWin32DragContextClass; +typedef struct _GdkWin32DragClass GdkWin32DragClass; GDK_AVAILABLE_IN_ALL -GType gdk_win32_drag_context_get_type (void); +GType gdk_win32_drag_get_type (void); G_END_DECLS -#endif /* __GDK_WIN32_DRAG_CONTEXT_H__ */ +#endif /* __GDK_WIN32_DRAG_H__ */ diff --git a/gdk/x11/gdkdevice-core-x11.c b/gdk/x11/gdkdevice-core-x11.c index 32d7cfbb12..58196e43e6 100644 --- a/gdk/x11/gdkdevice-core-x11.c +++ b/gdk/x11/gdkdevice-core-x11.c @@ -533,8 +533,7 @@ gdk_x11_device_core_surface_at_position (GdkDevice *device, break; if (get_toplevel && last != root && - (surface = gdk_x11_surface_lookup_for_display (display, last)) != NULL && - surface->surface_type != GDK_SURFACE_FOREIGN) + (surface = gdk_x11_surface_lookup_for_display (display, last)) != NULL) { xwindow = last; break; diff --git a/gdk/x11/gdkdevice-xi2.c b/gdk/x11/gdkdevice-xi2.c index b5152c143c..9abb0e82dd 100644 --- a/gdk/x11/gdkdevice-xi2.c +++ b/gdk/x11/gdkdevice-xi2.c @@ -624,8 +624,7 @@ gdk_x11_device_xi2_surface_at_position (GdkDevice *device, break; if (get_toplevel && last != root && - (surface = gdk_x11_surface_lookup_for_display (display, last)) != NULL && - GDK_SURFACE_TYPE (surface) != GDK_SURFACE_FOREIGN) + (surface = gdk_x11_surface_lookup_for_display (display, last)) != NULL) { xwindow = last; break; diff --git a/gdk/x11/gdkdnd-x11.c b/gdk/x11/gdkdnd-x11.c index f1070f7b0c..383cc09e47 100644 --- a/gdk/x11/gdkdnd-x11.c +++ b/gdk/x11/gdkdnd-x11.c @@ -32,7 +32,7 @@ #include "gdkclipboard-x11.h" #include "gdkdeviceprivate.h" #include "gdkdisplay-x11.h" -#include "gdkdndprivate.h" +#include "gdkdragprivate.h" #include "gdkinternals.h" #include "gdkintl.h" #include "gdkproperty.h" @@ -65,7 +65,7 @@ typedef enum { * @GDK_DRAG_PROTO_ROOTWIN: An extension to the Xdnd protocol for * unclaimed root window drops. * - * Used in #GdkDragContext to indicate the protocol according to + * Used in #GdkDrag to indicate the protocol according to * which DND is done. */ typedef enum @@ -93,9 +93,9 @@ struct _GdkSurfaceCache { }; -struct _GdkX11DragContext +struct _GdkX11Drag { - GdkDragContext context; + GdkDrag drag; GdkDragProtocol protocol; @@ -129,9 +129,9 @@ struct _GdkX11DragContext guint drop_failed : 1; /* Whether the drop was unsuccessful */ }; -struct _GdkX11DragContextClass +struct _GdkX11DragClass { - GdkDragContextClass parent_class; + GdkDragClass parent_class; }; typedef struct { @@ -168,89 +168,89 @@ static GrabKey grab_keys[] = { static GdkSurfaceCache *gdk_surface_cache_ref (GdkSurfaceCache *cache); static void gdk_surface_cache_unref (GdkSurfaceCache *cache); -gboolean gdk_x11_drag_context_handle_event (GdkDragContext *context, - const GdkEvent *event); -void gdk_x11_drag_context_action_changed (GdkDragContext *context, - GdkDragAction action); +gboolean gdk_x11_drag_handle_event (GdkDrag *drag, + const GdkEvent *event); +void gdk_x11_drag_action_changed (GdkDrag *drag, + GdkDragAction action); -static GList *contexts; +static GList *drags; static GSList *window_caches; -G_DEFINE_TYPE (GdkX11DragContext, gdk_x11_drag_context, GDK_TYPE_DRAG_CONTEXT) +G_DEFINE_TYPE (GdkX11Drag, gdk_x11_drag, GDK_TYPE_DRAG) static void -gdk_x11_drag_context_init (GdkX11DragContext *context) -{ - contexts = g_list_prepend (contexts, context); -} - -static void gdk_x11_drag_context_finalize (GObject *object); -static Window gdk_x11_drag_context_find_surface (GdkDragContext *context, - GdkSurface *drag_surface, - gint x_root, - gint y_root, - GdkDragProtocol *protocol); -static gboolean gdk_x11_drag_context_drag_motion (GdkDragContext *context, - Window proxy_xid, - GdkDragProtocol protocol, - gint x_root, - gint y_root, - GdkDragAction suggested_action, - GdkDragAction possible_actions, - guint32 time); -static void gdk_x11_drag_context_drag_abort (GdkDragContext *context, - guint32 time_); -static void gdk_x11_drag_context_drag_drop (GdkDragContext *context, - guint32 time_); -static GdkSurface * gdk_x11_drag_context_get_drag_surface (GdkDragContext *context); -static void gdk_x11_drag_context_set_hotspot (GdkDragContext *context, - gint hot_x, - gint hot_y); -static void gdk_x11_drag_context_drop_done (GdkDragContext *context, - gboolean success); -static void gdk_x11_drag_context_set_cursor (GdkDragContext *context, - GdkCursor *cursor); -static void gdk_x11_drag_context_cancel (GdkDragContext *context, - GdkDragCancelReason reason); -static void gdk_x11_drag_context_drop_performed (GdkDragContext *context, - guint32 time); +gdk_x11_drag_init (GdkX11Drag *drag) +{ + drags = g_list_prepend (drags, drag); +} + +static void gdk_x11_drag_finalize (GObject *object); +static Window gdk_x11_drag_find_surface (GdkDrag *drag, + GdkSurface *drag_surface, + gint x_root, + gint y_root, + GdkDragProtocol *protocol); +static gboolean gdk_x11_drag_drag_motion (GdkDrag *drag, + Window proxy_xid, + GdkDragProtocol protocol, + gint x_root, + gint y_root, + GdkDragAction suggested_action, + GdkDragAction possible_actions, + guint32 time); +static void gdk_x11_drag_drag_abort (GdkDrag *drag, + guint32 time_); +static void gdk_x11_drag_drag_drop (GdkDrag *drag, + guint32 time_); +static GdkSurface * gdk_x11_drag_get_drag_surface (GdkDrag *drag); +static void gdk_x11_drag_set_hotspot (GdkDrag *drag, + gint hot_x, + gint hot_y); +static void gdk_x11_drag_drop_done (GdkDrag *drag, + gboolean success); +static void gdk_x11_drag_set_cursor (GdkDrag *drag, + GdkCursor *cursor); +static void gdk_x11_drag_cancel (GdkDrag *drag, + GdkDragCancelReason reason); +static void gdk_x11_drag_drop_performed (GdkDrag *drag, + guint32 time); static void -gdk_x11_drag_context_class_init (GdkX11DragContextClass *klass) +gdk_x11_drag_class_init (GdkX11DragClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - GdkDragContextClass *context_class = GDK_DRAG_CONTEXT_CLASS (klass); + GdkDragClass *drag_class = GDK_DRAG_CLASS (klass); - object_class->finalize = gdk_x11_drag_context_finalize; + object_class->finalize = gdk_x11_drag_finalize; - context_class->drag_abort = gdk_x11_drag_context_drag_abort; - context_class->drag_drop = gdk_x11_drag_context_drag_drop; - context_class->get_drag_surface = gdk_x11_drag_context_get_drag_surface; - context_class->set_hotspot = gdk_x11_drag_context_set_hotspot; - context_class->drop_done = gdk_x11_drag_context_drop_done; - context_class->set_cursor = gdk_x11_drag_context_set_cursor; - context_class->cancel = gdk_x11_drag_context_cancel; - context_class->drop_performed = gdk_x11_drag_context_drop_performed; - context_class->handle_event = gdk_x11_drag_context_handle_event; - context_class->action_changed = gdk_x11_drag_context_action_changed; + drag_class->drag_abort = gdk_x11_drag_drag_abort; + drag_class->drag_drop = gdk_x11_drag_drag_drop; + drag_class->get_drag_surface = gdk_x11_drag_get_drag_surface; + drag_class->set_hotspot = gdk_x11_drag_set_hotspot; + drag_class->drop_done = gdk_x11_drag_drop_done; + drag_class->set_cursor = gdk_x11_drag_set_cursor; + drag_class->cancel = gdk_x11_drag_cancel; + drag_class->drop_performed = gdk_x11_drag_drop_performed; + drag_class->handle_event = gdk_x11_drag_handle_event; + drag_class->action_changed = gdk_x11_drag_action_changed; } static void -gdk_x11_drag_context_finalize (GObject *object) +gdk_x11_drag_finalize (GObject *object) { - GdkDragContext *context = GDK_DRAG_CONTEXT (object); - GdkX11DragContext *x11_context = GDK_X11_DRAG_CONTEXT (object); + GdkDrag *drag = GDK_DRAG (object); + GdkX11Drag *x11_drag = GDK_X11_DRAG (object); GdkSurface *drag_surface, *ipc_surface; - if (x11_context->cache) - gdk_surface_cache_unref (x11_context->cache); + if (x11_drag->cache) + gdk_surface_cache_unref (x11_drag->cache); - contexts = g_list_remove (contexts, context); + drags = g_list_remove (drags, drag); - drag_surface = context->drag_surface; - ipc_surface = x11_context->ipc_surface; + drag_surface = drag->drag_surface; + ipc_surface = x11_drag->ipc_surface; - G_OBJECT_CLASS (gdk_x11_drag_context_parent_class)->finalize (object); + G_OBJECT_CLASS (gdk_x11_drag_parent_class)->finalize (object); if (drag_surface) gdk_surface_destroy (drag_surface); @@ -260,49 +260,49 @@ gdk_x11_drag_context_finalize (GObject *object) /* Drag Contexts */ -GdkDragContext * -gdk_x11_drag_context_find (GdkDisplay *display, - Window source_xid, - Window dest_xid) +GdkDrag * +gdk_x11_drag_find (GdkDisplay *display, + Window source_xid, + Window dest_xid) { GList *tmp_list; - GdkDragContext *context; - GdkX11DragContext *context_x11; - Window context_dest_xid; + GdkDrag *drag; + GdkX11Drag *drag_x11; + Window drag_dest_xid; - for (tmp_list = contexts; tmp_list; tmp_list = tmp_list->next) + for (tmp_list = drags; tmp_list; tmp_list = tmp_list->next) { - context = (GdkDragContext *)tmp_list->data; - context_x11 = (GdkX11DragContext *)context; + drag = (GdkDrag *)tmp_list->data; + drag_x11 = (GdkX11Drag *)drag; - if (gdk_drag_context_get_display (context) != display) + if (gdk_drag_get_display (drag) != display) continue; - context_dest_xid = context_x11->proxy_xid - ? (context_x11->drop_xid - ? context_x11->drop_xid - : context_x11->proxy_xid) + drag_dest_xid = drag_x11->proxy_xid + ? (drag_x11->drop_xid + ? drag_x11->drop_xid + : drag_x11->proxy_xid) : None; - if (((source_xid == None) || (context->source_surface && - (GDK_SURFACE_XID (context->source_surface) == source_xid))) && - ((dest_xid == None) || (context_dest_xid == dest_xid))) - return context; + if (((source_xid == None) || (drag->source_surface && + (GDK_SURFACE_XID (drag->source_surface) == source_xid))) && + ((dest_xid == None) || (drag_dest_xid == dest_xid))) + return drag; } return NULL; } static void -precache_target_list (GdkDragContext *context) +precache_target_list (GdkDrag *drag) { - GdkContentFormats *formats = gdk_drag_context_get_formats (context); + GdkContentFormats *formats = gdk_drag_get_formats (drag); const char * const *atoms; gsize n_atoms; atoms = gdk_content_formats_get_mime_types (formats, &n_atoms); - _gdk_x11_precache_atoms (gdk_drag_context_get_display (context), + _gdk_x11_precache_atoms (gdk_drag_get_display (drag), (const gchar **) atoms, n_atoms); } @@ -328,13 +328,13 @@ free_cache_child (GdkCacheChild *child, static void gdk_surface_cache_add (GdkSurfaceCache *cache, - guint32 xid, - gint x, - gint y, - gint width, - gint height, - gboolean mapped) -{ + guint32 xid, + gint x, + gint y, + gint width, + gint height, + gboolean mapped) +{ GdkCacheChild *child = g_new (GdkCacheChild, 1); child->xid = xid; @@ -354,8 +354,8 @@ gdk_surface_cache_add (GdkSurfaceCache *cache, GdkFilterReturn gdk_surface_cache_shape_filter (const XEvent *xevent, - GdkEvent *event, - gpointer data) + GdkEvent *event, + gpointer data) { GdkSurfaceCache *cache = data; @@ -388,8 +388,8 @@ gdk_surface_cache_shape_filter (const XEvent *xevent, GdkFilterReturn gdk_surface_cache_filter (const XEvent *xevent, - GdkEvent *event, - gpointer data) + GdkEvent *event, + gpointer data) { GdkSurfaceCache *cache = data; @@ -855,25 +855,25 @@ xdnd_action_to_atom (GdkDisplay *display, /* Source side */ void -gdk_x11_drag_context_handle_status (GdkDisplay *display, - const XEvent *xevent) +gdk_x11_drag_handle_status (GdkDisplay *display, + const XEvent *xevent) { guint32 dest_surface = xevent->xclient.data.l[0]; guint32 flags = xevent->xclient.data.l[1]; Atom action = xevent->xclient.data.l[4]; - GdkDragContext *context; + GdkDrag *drag; - context = gdk_x11_drag_context_find (display, xevent->xclient.window, dest_surface); + drag = gdk_x11_drag_find (display, xevent->xclient.window, dest_surface); GDK_DISPLAY_NOTE (display, DND, g_message ("XdndStatus: dest_surface: %#x action: %ld", dest_surface, action)); - if (context) + if (drag) { - GdkX11DragContext *context_x11 = GDK_X11_DRAG_CONTEXT (context); - if (context_x11->drag_status == GDK_DRAG_STATUS_MOTION_WAIT) - context_x11->drag_status = GDK_DRAG_STATUS_DRAG; + GdkX11Drag *drag_x11 = GDK_X11_DRAG (drag); + if (drag_x11->drag_status == GDK_DRAG_STATUS_MOTION_WAIT) + drag_x11->drag_status = GDK_DRAG_STATUS_DRAG; if (!(action != 0) != !(flags & 1)) { @@ -882,80 +882,80 @@ gdk_x11_drag_context_handle_status (GdkDisplay *display, action = 0; } - context->action = xdnd_action_from_atom (display, action); + drag->action = xdnd_action_from_atom (display, action); - if (context->action != context_x11->current_action) + if (drag->action != drag_x11->current_action) { - context_x11->current_action = context->action; - g_signal_emit_by_name (context, "action-changed", context->action); + drag_x11->current_action = drag->action; + g_signal_emit_by_name (drag, "action-changed", drag->action); } } } void -gdk_x11_drag_context_handle_finished (GdkDisplay *display, - const XEvent *xevent) +gdk_x11_drag_handle_finished (GdkDisplay *display, + const XEvent *xevent) { guint32 dest_surface = xevent->xclient.data.l[0]; - GdkDragContext *context; - GdkX11DragContext *context_x11; + GdkDrag *drag; + GdkX11Drag *drag_x11; - context = gdk_x11_drag_context_find (display, xevent->xclient.window, dest_surface); + drag = gdk_x11_drag_find (display, xevent->xclient.window, dest_surface); GDK_DISPLAY_NOTE (display, DND, g_message ("XdndFinished: dest_surface: %#x", dest_surface)); - if (context) + if (drag) { - g_object_ref (context); + g_object_ref (drag); - context_x11 = GDK_X11_DRAG_CONTEXT (context); - if (context_x11->version == 5) - context_x11->drop_failed = xevent->xclient.data.l[1] == 0; + drag_x11 = GDK_X11_DRAG (drag); + if (drag_x11->version == 5) + drag_x11->drop_failed = xevent->xclient.data.l[1] == 0; - g_signal_emit_by_name (context, "dnd-finished"); - gdk_drag_drop_done (context, !context_x11->drop_failed); + g_signal_emit_by_name (drag, "dnd-finished"); + gdk_drag_drop_done (drag, !drag_x11->drop_failed); - g_object_unref (context); + g_object_unref (drag); } } static void -xdnd_set_targets (GdkX11DragContext *context_x11) +xdnd_set_targets (GdkX11Drag *drag_x11) { - GdkDragContext *context = GDK_DRAG_CONTEXT (context_x11); + GdkDrag *drag = GDK_DRAG (drag_x11); Atom *atomlist; const char * const *atoms; gsize i, n_atoms; - GdkDisplay *display = gdk_drag_context_get_display (context); + GdkDisplay *display = gdk_drag_get_display (drag); - atoms = gdk_content_formats_get_mime_types (gdk_drag_context_get_formats (context), &n_atoms); + atoms = gdk_content_formats_get_mime_types (gdk_drag_get_formats (drag), &n_atoms); atomlist = g_new (Atom, n_atoms); for (i = 0; i < n_atoms; i++) atomlist[i] = gdk_x11_get_xatom_by_name_for_display (display, atoms[i]); XChangeProperty (GDK_DISPLAY_XDISPLAY (display), - GDK_SURFACE_XID (context_x11->ipc_surface), + GDK_SURFACE_XID (drag_x11->ipc_surface), gdk_x11_get_xatom_by_name_for_display (display, "XdndTypeList"), XA_ATOM, 32, PropModeReplace, (guchar *)atomlist, n_atoms); g_free (atomlist); - context_x11->xdnd_targets_set = 1; + drag_x11->xdnd_targets_set = 1; } static void -xdnd_set_actions (GdkX11DragContext *context_x11) +xdnd_set_actions (GdkX11Drag *drag_x11) { - GdkDragContext *context = GDK_DRAG_CONTEXT (context_x11); + GdkDrag *drag = GDK_DRAG (drag_x11); Atom *atomlist; gint i; gint n_atoms; guint actions; - GdkDisplay *display = gdk_drag_context_get_display (context); + GdkDisplay *display = gdk_drag_get_display (drag); - actions = gdk_drag_context_get_actions (context); + actions = gdk_drag_get_actions (drag); n_atoms = 0; for (i = 0; i < xdnd_n_actions; i++) { @@ -968,7 +968,7 @@ xdnd_set_actions (GdkX11DragContext *context_x11) atomlist = g_new (Atom, n_atoms); - actions = gdk_drag_context_get_actions (context); + actions = gdk_drag_get_actions (drag); n_atoms = 0; for (i = 0; i < xdnd_n_actions; i++) { @@ -981,14 +981,14 @@ xdnd_set_actions (GdkX11DragContext *context_x11) } XChangeProperty (GDK_DISPLAY_XDISPLAY (display), - GDK_SURFACE_XID (context_x11->ipc_surface), + GDK_SURFACE_XID (drag_x11->ipc_surface), gdk_x11_get_xatom_by_name_for_display (display, "XdndActionList"), XA_ATOM, 32, PropModeReplace, (guchar *)atomlist, n_atoms); g_free (atomlist); - context_x11->xdnd_actions = gdk_drag_context_get_actions (context); + drag_x11->xdnd_actions = gdk_drag_get_actions (drag); } static void @@ -996,10 +996,10 @@ send_client_message_async_cb (Window window, gboolean success, gpointer data) { - GdkX11DragContext *context_x11 = data; - GdkDragContext *context = data; + GdkX11Drag *drag_x11 = data; + GdkDrag *drag = data; - GDK_DISPLAY_NOTE (gdk_drag_context_get_display (context), DND, + GDK_DISPLAY_NOTE (gdk_drag_get_display (drag), DND, g_message ("Got async callback for #%lx, success = %d", window, success)); @@ -1007,69 +1007,69 @@ send_client_message_async_cb (Window window, * so we don't end up blocking for a timeout */ if (!success && - window == context_x11->proxy_xid) + window == drag_x11->proxy_xid) { - context_x11->proxy_xid = None; - context->action = 0; - if (context->action != context_x11->current_action) + drag_x11->proxy_xid = None; + drag->action = 0; + if (drag->action != drag_x11->current_action) { - context_x11->current_action = 0; - g_signal_emit_by_name (context, "action-changed", 0); + drag_x11->current_action = 0; + g_signal_emit_by_name (drag, "action-changed", 0); } - context_x11->drag_status = GDK_DRAG_STATUS_DRAG; + drag_x11->drag_status = GDK_DRAG_STATUS_DRAG; } - g_object_unref (context); + g_object_unref (drag); } static void -send_client_message_async (GdkDragContext *context, +send_client_message_async (GdkDrag *drag, Window window, glong event_mask, XClientMessageEvent *event_send) { - GdkDisplay *display = gdk_drag_context_get_display (context); + GdkDisplay *display = gdk_drag_get_display (drag); - g_object_ref (context); + g_object_ref (drag); _gdk_x11_send_client_message_async (display, window, FALSE, event_mask, event_send, - send_client_message_async_cb, context); + send_client_message_async_cb, drag); } static void -xdnd_send_xevent (GdkX11DragContext *context_x11, +xdnd_send_xevent (GdkX11Drag *drag_x11, XEvent *event_send) { - GdkDragContext *context = GDK_DRAG_CONTEXT (context_x11); - GdkDisplay *display = gdk_drag_context_get_display (context); + GdkDrag *drag = GDK_DRAG (drag_x11); + GdkDisplay *display = gdk_drag_get_display (drag); GdkSurface *surface; glong event_mask; g_assert (event_send->xany.type == ClientMessage); /* We short-circuit messages to ourselves */ - surface = gdk_x11_surface_lookup_for_display (display, context_x11->proxy_xid); + surface = gdk_x11_surface_lookup_for_display (display, drag_x11->proxy_xid); if (surface) { if (gdk_x11_drop_filter (surface, event_send)) return; } - if (_gdk_x11_display_is_root_window (display, context_x11->proxy_xid)) + if (_gdk_x11_display_is_root_window (display, drag_x11->proxy_xid)) event_mask = ButtonPressMask; else event_mask = 0; - send_client_message_async (context, context_x11->proxy_xid, event_mask, + send_client_message_async (drag, drag_x11->proxy_xid, event_mask, &event_send->xclient); } static void -xdnd_send_enter (GdkX11DragContext *context_x11) +xdnd_send_enter (GdkX11Drag *drag_x11) { - GdkDragContext *context = GDK_DRAG_CONTEXT (context_x11); - GdkDisplay *display = gdk_drag_context_get_display (context); + GdkDrag *drag = GDK_DRAG (drag_x11); + GdkDisplay *display = gdk_drag_get_display (drag); const char * const *atoms; gsize i, n_atoms; XEvent xev; @@ -1077,24 +1077,24 @@ xdnd_send_enter (GdkX11DragContext *context_x11) xev.xclient.type = ClientMessage; xev.xclient.message_type = gdk_x11_get_xatom_by_name_for_display (display, "XdndEnter"); xev.xclient.format = 32; - xev.xclient.window = context_x11->drop_xid - ? context_x11->drop_xid - : context_x11->proxy_xid; - xev.xclient.data.l[0] = GDK_SURFACE_XID (context_x11->ipc_surface); - xev.xclient.data.l[1] = (context_x11->version << 24); /* version */ + xev.xclient.window = drag_x11->drop_xid + ? drag_x11->drop_xid + : drag_x11->proxy_xid; + xev.xclient.data.l[0] = GDK_SURFACE_XID (drag_x11->ipc_surface); + xev.xclient.data.l[1] = (drag_x11->version << 24); /* version */ xev.xclient.data.l[2] = 0; xev.xclient.data.l[3] = 0; xev.xclient.data.l[4] = 0; GDK_DISPLAY_NOTE (display, DND, g_message ("Sending enter source window %#lx XDND protocol version %d\n", - GDK_SURFACE_XID (context_x11->ipc_surface), context_x11->version)); - atoms = gdk_content_formats_get_mime_types (gdk_drag_context_get_formats (context), &n_atoms); + GDK_SURFACE_XID (drag_x11->ipc_surface), drag_x11->version)); + atoms = gdk_content_formats_get_mime_types (gdk_drag_get_formats (drag), &n_atoms); if (n_atoms > 3) { - if (!context_x11->xdnd_targets_set) - xdnd_set_targets (context_x11); + if (!drag_x11->xdnd_targets_set) + xdnd_set_targets (drag_x11); xev.xclient.data.l[1] |= 1; } else @@ -1105,79 +1105,79 @@ xdnd_send_enter (GdkX11DragContext *context_x11) } } - xdnd_send_xevent (context_x11, &xev); + xdnd_send_xevent (drag_x11, &xev); } static void -xdnd_send_leave (GdkX11DragContext *context_x11) +xdnd_send_leave (GdkX11Drag *drag_x11) { - GdkDragContext *context = GDK_DRAG_CONTEXT (context_x11); - GdkDisplay *display = gdk_drag_context_get_display (context); + GdkDrag *drag = GDK_DRAG (drag_x11); + GdkDisplay *display = gdk_drag_get_display (drag); XEvent xev; xev.xclient.type = ClientMessage; xev.xclient.message_type = gdk_x11_get_xatom_by_name_for_display (display, "XdndLeave"); xev.xclient.format = 32; - xev.xclient.window = context_x11->drop_xid - ? context_x11->drop_xid - : context_x11->proxy_xid; - xev.xclient.data.l[0] = GDK_SURFACE_XID (context_x11->ipc_surface); + xev.xclient.window = drag_x11->drop_xid + ? drag_x11->drop_xid + : drag_x11->proxy_xid; + xev.xclient.data.l[0] = GDK_SURFACE_XID (drag_x11->ipc_surface); xev.xclient.data.l[1] = 0; xev.xclient.data.l[2] = 0; xev.xclient.data.l[3] = 0; xev.xclient.data.l[4] = 0; - xdnd_send_xevent (context_x11, &xev); + xdnd_send_xevent (drag_x11, &xev); } static void -xdnd_send_drop (GdkX11DragContext *context_x11, +xdnd_send_drop (GdkX11Drag *drag_x11, guint32 time) { - GdkDragContext *context = GDK_DRAG_CONTEXT (context_x11); - GdkDisplay *display = gdk_drag_context_get_display (context); + GdkDrag *drag = GDK_DRAG (drag_x11); + GdkDisplay *display = gdk_drag_get_display (drag); XEvent xev; xev.xclient.type = ClientMessage; xev.xclient.message_type = gdk_x11_get_xatom_by_name_for_display (display, "XdndDrop"); xev.xclient.format = 32; - xev.xclient.window = context_x11->drop_xid - ? context_x11->drop_xid - : context_x11->proxy_xid; - xev.xclient.data.l[0] = GDK_SURFACE_XID (context_x11->ipc_surface); + xev.xclient.window = drag_x11->drop_xid + ? drag_x11->drop_xid + : drag_x11->proxy_xid; + xev.xclient.data.l[0] = GDK_SURFACE_XID (drag_x11->ipc_surface); xev.xclient.data.l[1] = 0; xev.xclient.data.l[2] = time; xev.xclient.data.l[3] = 0; xev.xclient.data.l[4] = 0; - xdnd_send_xevent (context_x11, &xev); + xdnd_send_xevent (drag_x11, &xev); } static void -xdnd_send_motion (GdkX11DragContext *context_x11, +xdnd_send_motion (GdkX11Drag *drag_x11, gint x_root, gint y_root, GdkDragAction action, guint32 time) { - GdkDragContext *context = GDK_DRAG_CONTEXT (context_x11); - GdkDisplay *display = gdk_drag_context_get_display (context); + GdkDrag *drag = GDK_DRAG (drag_x11); + GdkDisplay *display = gdk_drag_get_display (drag); XEvent xev; xev.xclient.type = ClientMessage; xev.xclient.message_type = gdk_x11_get_xatom_by_name_for_display (display, "XdndPosition"); xev.xclient.format = 32; - xev.xclient.window = context_x11->drop_xid - ? context_x11->drop_xid - : context_x11->proxy_xid; - xev.xclient.data.l[0] = GDK_SURFACE_XID (context_x11->ipc_surface); + xev.xclient.window = drag_x11->drop_xid + ? drag_x11->drop_xid + : drag_x11->proxy_xid; + xev.xclient.data.l[0] = GDK_SURFACE_XID (drag_x11->ipc_surface); xev.xclient.data.l[1] = 0; xev.xclient.data.l[2] = (x_root << 16) | y_root; xev.xclient.data.l[3] = time; xev.xclient.data.l[4] = xdnd_action_to_atom (display, action); - xdnd_send_xevent (context_x11, &xev); - context_x11->drag_status = GDK_DRAG_STATUS_MOTION_WAIT; + xdnd_send_xevent (drag_x11, &xev); + drag_x11->drag_status = GDK_DRAG_STATUS_MOTION_WAIT; } static guint32 @@ -1309,15 +1309,15 @@ xdnd_precache_atoms (GdkDisplay *display) /* Source side */ static void -gdk_drag_do_leave (GdkX11DragContext *context_x11, +gdk_drag_do_leave (GdkX11Drag *drag_x11, guint32 time) { - if (context_x11->proxy_xid) + if (drag_x11->proxy_xid) { - switch (context_x11->protocol) + switch (drag_x11->protocol) { case GDK_DRAG_PROTO_XDND: - xdnd_send_leave (context_x11); + xdnd_send_leave (drag_x11); break; case GDK_DRAG_PROTO_ROOTWIN: case GDK_DRAG_PROTO_NONE: @@ -1325,7 +1325,7 @@ gdk_drag_do_leave (GdkX11DragContext *context_x11, break; } - context_x11->proxy_xid = None; + drag_x11->proxy_xid = None; } } @@ -1355,7 +1355,7 @@ _gdk_x11_display_get_drag_protocol (GdkDisplay *display, /* Check for a local drag */ surface = gdk_x11_surface_lookup_for_display (display, xid); - if (surface && gdk_surface_get_surface_type (surface) != GDK_SURFACE_FOREIGN) + if (surface) { if (g_object_get_data (G_OBJECT (surface), "gdk-dnd-registered") != NULL) { @@ -1401,33 +1401,33 @@ _gdk_x11_display_get_drag_protocol (GdkDisplay *display, } static GdkSurfaceCache * -drag_context_find_window_cache (GdkX11DragContext *context_x11, +drag_find_window_cache (GdkX11Drag *drag_x11, GdkDisplay *display) { - if (!context_x11->cache) - context_x11->cache = gdk_surface_cache_get (display); + if (!drag_x11->cache) + drag_x11->cache = gdk_surface_cache_get (display); - return context_x11->cache; + return drag_x11->cache; } static Window -gdk_x11_drag_context_find_surface (GdkDragContext *context, +gdk_x11_drag_find_surface (GdkDrag *drag, GdkSurface *drag_surface, gint x_root, gint y_root, GdkDragProtocol *protocol) { GdkX11Screen *screen_x11; - GdkX11DragContext *context_x11 = GDK_X11_DRAG_CONTEXT (context); + GdkX11Drag *drag_x11 = GDK_X11_DRAG (drag); GdkSurfaceCache *window_cache; GdkDisplay *display; Window dest; Window proxy; - display = gdk_drag_context_get_display (context); + display = gdk_drag_get_display (drag); screen_x11 = GDK_X11_SCREEN(GDK_X11_DISPLAY (display)->screen); - window_cache = drag_context_find_window_cache (context_x11, display); + window_cache = drag_find_window_cache (drag_x11, display); dest = get_client_window_at_coords (window_cache, drag_surface && GDK_SURFACE_IS_X11 (drag_surface) ? @@ -1435,9 +1435,9 @@ gdk_x11_drag_context_find_surface (GdkDragContext *context, x_root * screen_x11->surface_scale, y_root * screen_x11->surface_scale); - if (context_x11->dest_xid != dest) + if (drag_x11->dest_xid != dest) { - context_x11->dest_xid = dest; + drag_x11->dest_xid = dest; /* Check if new destination accepts drags, and which protocol */ @@ -1450,32 +1450,32 @@ gdk_x11_drag_context_find_surface (GdkDragContext *context, proxy = _gdk_x11_display_get_drag_protocol (display, dest, protocol, - &context_x11->version); + &drag_x11->version); } else { proxy = dest; - *protocol = context_x11->protocol; + *protocol = drag_x11->protocol; } return proxy; } static void -move_drag_surface (GdkDragContext *context, +move_drag_surface (GdkDrag *drag, guint x_root, guint y_root) { - GdkX11DragContext *context_x11 = GDK_X11_DRAG_CONTEXT (context); + GdkX11Drag *drag_x11 = GDK_X11_DRAG (drag); - gdk_surface_move (context_x11->drag_surface, - x_root - context_x11->hot_x, - y_root - context_x11->hot_y); - gdk_surface_raise (context_x11->drag_surface); + gdk_surface_move (drag_x11->drag_surface, + x_root - drag_x11->hot_x, + y_root - drag_x11->hot_y); + gdk_surface_raise (drag_x11->drag_surface); } static gboolean -gdk_x11_drag_context_drag_motion (GdkDragContext *context, +gdk_x11_drag_drag_motion (GdkDrag *drag, Window proxy_xid, GdkDragProtocol protocol, gint x_root, @@ -1484,68 +1484,68 @@ gdk_x11_drag_context_drag_motion (GdkDragContext *context, GdkDragAction possible_actions, guint32 time) { - GdkX11DragContext *context_x11 = GDK_X11_DRAG_CONTEXT (context); + GdkX11Drag *drag_x11 = GDK_X11_DRAG (drag); - if (context_x11->drag_surface) - move_drag_surface (context, x_root, y_root); + if (drag_x11->drag_surface) + move_drag_surface (drag, x_root, y_root); - gdk_drag_context_set_actions (context, possible_actions, suggested_action); + gdk_drag_set_actions (drag, possible_actions, suggested_action); - if (protocol == GDK_DRAG_PROTO_XDND && context_x11->version == 0) + if (protocol == GDK_DRAG_PROTO_XDND && drag_x11->version == 0) { /* This ugly hack is necessary since GTK+ doesn't know about * the XDND protocol version, and in particular doesn't know * that gdk_drag_find_window() has the side-effect - * of setting context_x11->version, and therefore sometimes call - * gdk_x11_drag_context_drag_motion() without a prior call to + * of setting drag_x11->version, and therefore sometimes call + * gdk_x11_drag_drag_motion() without a prior call to * gdk_drag_find_window(). This happens, e.g. * when GTK+ is proxying DND events to embedded windows. */ if (proxy_xid) { - GdkDisplay *display = gdk_drag_context_get_display (context); + GdkDisplay *display = gdk_drag_get_display (drag); xdnd_check_dest (display, proxy_xid, - &context_x11->version); + &drag_x11->version); } } /* When we have a Xdnd target, make sure our XdndActionList * matches the current actions; */ - if (protocol == GDK_DRAG_PROTO_XDND && context_x11->xdnd_actions != gdk_drag_context_get_actions (context)) + if (protocol == GDK_DRAG_PROTO_XDND && drag_x11->xdnd_actions != gdk_drag_get_actions (drag)) { if (proxy_xid) { - GdkDisplay *display = gdk_drag_context_get_display (context); + GdkDisplay *display = gdk_drag_get_display (drag); GdkDrop *drop = GDK_X11_DISPLAY (display)->current_drop; if (drop && GDK_SURFACE_XID (gdk_drop_get_surface (drop)) == proxy_xid) gdk_x11_drop_read_actions (drop); else - xdnd_set_actions (context_x11); + xdnd_set_actions (drag_x11); } } - if (context_x11->proxy_xid != proxy_xid) + if (drag_x11->proxy_xid != proxy_xid) { /* Send a leave to the last destination */ - gdk_drag_do_leave (context_x11, time); - context_x11->drag_status = GDK_DRAG_STATUS_DRAG; + gdk_drag_do_leave (drag_x11, time); + drag_x11->drag_status = GDK_DRAG_STATUS_DRAG; /* Check if new destination accepts drags, and which protocol */ if (proxy_xid) { - context_x11->proxy_xid = proxy_xid; - context_x11->drop_xid = context_x11->dest_xid; - context_x11->protocol = protocol; + drag_x11->proxy_xid = proxy_xid; + drag_x11->drop_xid = drag_x11->dest_xid; + drag_x11->protocol = protocol; switch (protocol) { case GDK_DRAG_PROTO_XDND: - xdnd_send_enter (context_x11); + xdnd_send_enter (drag_x11); break; case GDK_DRAG_PROTO_ROOTWIN: @@ -1556,60 +1556,60 @@ gdk_x11_drag_context_drag_motion (GdkDragContext *context, } else { - context_x11->proxy_xid = None; - context_x11->drop_xid = None; - context->action = 0; + drag_x11->proxy_xid = None; + drag_x11->drop_xid = None; + drag->action = 0; } /* Push a status event, to let the client know that * the drag changed */ - if (context->action != context_x11->current_action) + if (drag->action != drag_x11->current_action) { - context_x11->current_action = context->action; - g_signal_emit_by_name (context, "action-changed", context->action); + drag_x11->current_action = drag->action; + g_signal_emit_by_name (drag, "action-changed", drag->action); } } /* Send a drag-motion event */ - context_x11->last_x = x_root; - context_x11->last_y = y_root; + drag_x11->last_x = x_root; + drag_x11->last_y = y_root; - if (context_x11->proxy_xid) + if (drag_x11->proxy_xid) { - GdkDisplay *display = gdk_drag_context_get_display (context); + GdkDisplay *display = gdk_drag_get_display (drag); GdkX11Screen *screen_x11 = GDK_X11_SCREEN(GDK_X11_DISPLAY (display)->screen); - if (context_x11->drag_status == GDK_DRAG_STATUS_DRAG) + if (drag_x11->drag_status == GDK_DRAG_STATUS_DRAG) { - switch (context_x11->protocol) + switch (drag_x11->protocol) { case GDK_DRAG_PROTO_XDND: - xdnd_send_motion (context_x11, x_root * screen_x11->surface_scale, y_root * screen_x11->surface_scale, suggested_action, time); + xdnd_send_motion (drag_x11, x_root * screen_x11->surface_scale, y_root * screen_x11->surface_scale, suggested_action, time); break; case GDK_DRAG_PROTO_ROOTWIN: { - GdkContentFormats *formats = gdk_drag_context_get_formats (context); + GdkContentFormats *formats = gdk_drag_get_formats (drag); /* GTK+ traditionally has used application/x-rootwin-drop, * but the XDND spec specifies x-rootwindow-drop. */ if (gdk_content_formats_contain_mime_type (formats, "application/x-rootwindow-drop") || gdk_content_formats_contain_mime_type (formats, "application/x-rootwin-drop")) - context->action = gdk_drag_context_get_suggested_action (context); + drag->action = gdk_drag_get_suggested_action (drag); else - context->action = 0; + drag->action = 0; - if (context->action != context_x11->current_action) + if (drag->action != drag_x11->current_action) { - context_x11->current_action = context->action; - g_signal_emit_by_name (context, "action-changed", context->action); + drag_x11->current_action = drag->action; + g_signal_emit_by_name (drag, "action-changed", drag->action); } } break; case GDK_DRAG_PROTO_NONE: - g_warning ("Invalid drag protocol %u in gdk_x11_drag_context_drag_motion()", context_x11->protocol); + g_warning ("Invalid drag protocol %u in gdk_x11_drag_drag_motion()", drag_x11->protocol); break; default: break; @@ -1623,24 +1623,24 @@ gdk_x11_drag_context_drag_motion (GdkDragContext *context, } static void -gdk_x11_drag_context_drag_abort (GdkDragContext *context, +gdk_x11_drag_drag_abort (GdkDrag *drag, guint32 time) { - gdk_drag_do_leave (GDK_X11_DRAG_CONTEXT (context), time); + gdk_drag_do_leave (GDK_X11_DRAG (drag), time); } static void -gdk_x11_drag_context_drag_drop (GdkDragContext *context, +gdk_x11_drag_drag_drop (GdkDrag *drag, guint32 time) { - GdkX11DragContext *context_x11 = GDK_X11_DRAG_CONTEXT (context); + GdkX11Drag *drag_x11 = GDK_X11_DRAG (drag); - if (context_x11->proxy_xid) + if (drag_x11->proxy_xid) { - switch (context_x11->protocol) + switch (drag_x11->protocol) { case GDK_DRAG_PROTO_XDND: - xdnd_send_drop (context_x11, time); + xdnd_send_drop (drag_x11, time); break; case GDK_DRAG_PROTO_ROOTWIN: @@ -1650,7 +1650,7 @@ gdk_x11_drag_context_drag_drop (GdkDragContext *context, g_warning ("GDK_DRAG_PROTO_NONE is not valid in gdk_drag_drop()"); break; default: - g_warning ("Drag protocol %u is not valid in gdk_drag_drop()", context_x11->protocol); + g_warning ("Drag protocol %u is not valid in gdk_drag_drop()", drag_x11->protocol); break; } } @@ -1684,68 +1684,68 @@ _gdk_x11_surface_register_dnd (GdkSurface *surface) } static GdkSurface * -gdk_x11_drag_context_get_drag_surface (GdkDragContext *context) +gdk_x11_drag_get_drag_surface (GdkDrag *drag) { - return GDK_X11_DRAG_CONTEXT (context)->drag_surface; + return GDK_X11_DRAG (drag)->drag_surface; } static void -gdk_x11_drag_context_set_hotspot (GdkDragContext *context, +gdk_x11_drag_set_hotspot (GdkDrag *drag, gint hot_x, gint hot_y) { - GdkX11DragContext *x11_context = GDK_X11_DRAG_CONTEXT (context); + GdkX11Drag *x11_drag = GDK_X11_DRAG (drag); - x11_context->hot_x = hot_x; - x11_context->hot_y = hot_y; + x11_drag->hot_x = hot_x; + x11_drag->hot_y = hot_y; - if (x11_context->grab_seat) + if (x11_drag->grab_seat) { /* DnD is managed, update current position */ - move_drag_surface (context, x11_context->last_x, x11_context->last_y); + move_drag_surface (drag, x11_drag->last_x, x11_drag->last_y); } } static void -gdk_x11_drag_context_default_output_done (GObject *context, +gdk_x11_drag_default_output_done (GObject *drag, GAsyncResult *result, gpointer user_data) { GError *error = NULL; - if (!gdk_drag_context_write_finish (GDK_DRAG_CONTEXT (context), result, &error)) + if (!gdk_drag_write_finish (GDK_DRAG (drag), result, &error)) { - GDK_DISPLAY_NOTE (gdk_drag_context_get_display (GDK_DRAG_CONTEXT (context)), DND, g_printerr ("failed to write stream: %s\n", error->message)); + GDK_DISPLAY_NOTE (gdk_drag_get_display (GDK_DRAG (drag)), DND, g_printerr ("failed to write stream: %s\n", error->message)); g_error_free (error); } } static void -gdk_x11_drag_context_default_output_handler (GOutputStream *stream, +gdk_x11_drag_default_output_handler (GOutputStream *stream, const char *mime_type, gpointer user_data) { - gdk_drag_context_write_async (GDK_DRAG_CONTEXT (user_data), + gdk_drag_write_async (GDK_DRAG (user_data), mime_type, stream, G_PRIORITY_DEFAULT, NULL, - gdk_x11_drag_context_default_output_done, + gdk_x11_drag_default_output_done, NULL); g_object_unref (stream); } static gboolean -gdk_x11_drag_context_xevent (GdkDisplay *display, +gdk_x11_drag_xevent (GdkDisplay *display, const XEvent *xevent, gpointer data) { - GdkDragContext *context = GDK_DRAG_CONTEXT (data); - GdkX11DragContext *x11_context = GDK_X11_DRAG_CONTEXT (context); + GdkDrag *drag = GDK_DRAG (data); + GdkX11Drag *x11_drag = GDK_X11_DRAG (drag); Window xwindow; Atom xselection; - xwindow = GDK_SURFACE_XID (x11_context->ipc_surface); + xwindow = GDK_SURFACE_XID (x11_drag->ipc_surface); xselection = gdk_x11_get_xatom_by_name_for_display (display, "XdndSelection"); if (xevent->xany.window != xwindow) @@ -1757,15 +1757,15 @@ gdk_x11_drag_context_xevent (GdkDisplay *display, if (xevent->xselectionclear.selection != xselection) return FALSE; - if (xevent->xselectionclear.time < x11_context->timestamp) + if (xevent->xselectionclear.time < x11_drag->timestamp) { GDK_DISPLAY_NOTE (display, CLIPBOARD, g_printerr ("ignoring SelectionClear with too old timestamp (%lu vs %lu)\n", - xevent->xselectionclear.time, x11_context->timestamp)); + xevent->xselectionclear.time, x11_drag->timestamp)); return FALSE; } GDK_DISPLAY_NOTE (display, CLIPBOARD, g_printerr ("got SelectionClear, aborting DND\n")); - gdk_drag_context_cancel (context, GDK_DRAG_CANCEL_ERROR); + gdk_drag_cancel (drag, GDK_DRAG_CANCEL_ERROR); return TRUE; case SelectionRequest: @@ -1792,23 +1792,23 @@ gdk_x11_drag_context_xevent (GdkDisplay *display, target, property)); gdk_x11_selection_output_streams_create (display, - gdk_drag_context_get_formats (context), + gdk_drag_get_formats (drag), xevent->xselectionrequest.requestor, xevent->xselectionrequest.selection, xevent->xselectionrequest.target, xevent->xselectionrequest.property ? xevent->xselectionrequest.property : xevent->xselectionrequest.target, xevent->xselectionrequest.time, - gdk_x11_drag_context_default_output_handler, - context); + gdk_x11_drag_default_output_handler, + drag); return TRUE; } case ClientMessage: if (xevent->xclient.message_type == gdk_x11_get_xatom_by_name_for_display (display, "XdndStatus")) - gdk_x11_drag_context_handle_status (display, xevent); + gdk_x11_drag_handle_status (display, xevent); else if (xevent->xclient.message_type == gdk_x11_get_xatom_by_name_for_display (display, "XdndFinished")) - gdk_x11_drag_context_handle_finished (display, xevent); + gdk_x11_drag_handle_finished (display, xevent); else return FALSE; return TRUE; @@ -1830,7 +1830,7 @@ ease_out_cubic (double t) typedef struct _GdkDragAnim GdkDragAnim; struct _GdkDragAnim { - GdkX11DragContext *context; + GdkX11Drag *drag; GdkFrameClock *frame_clock; gint64 start_time; }; @@ -1838,7 +1838,7 @@ struct _GdkDragAnim { static void gdk_drag_anim_destroy (GdkDragAnim *anim) { - g_object_unref (anim->context); + g_object_unref (anim->drag); g_slice_free (GdkDragAnim, anim); } @@ -1846,7 +1846,7 @@ static gboolean gdk_drag_anim_timeout (gpointer data) { GdkDragAnim *anim = data; - GdkX11DragContext *context = anim->context; + GdkX11Drag *drag = anim->drag; GdkFrameClock *frame_clock = anim->frame_clock; gint64 current_time; double f; @@ -1864,38 +1864,38 @@ gdk_drag_anim_timeout (gpointer data) t = ease_out_cubic (f); - gdk_surface_show (context->drag_surface); - gdk_surface_move (context->drag_surface, - context->last_x + (context->start_x - context->last_x) * t, - context->last_y + (context->start_y - context->last_y) * t); - gdk_surface_set_opacity (context->drag_surface, 1.0 - f); + gdk_surface_show (drag->drag_surface); + gdk_surface_move (drag->drag_surface, + drag->last_x + (drag->start_x - drag->last_x) * t, + drag->last_y + (drag->start_y - drag->last_y) * t); + gdk_surface_set_opacity (drag->drag_surface, 1.0 - f); return G_SOURCE_CONTINUE; } static void -gdk_x11_drag_context_release_selection (GdkDragContext *context) +gdk_x11_drag_release_selection (GdkDrag *drag) { - GdkX11DragContext *x11_context = GDK_X11_DRAG_CONTEXT (context); + GdkX11Drag *x11_drag = GDK_X11_DRAG (drag); GdkDisplay *display; Display *xdisplay; Window xwindow; Atom xselection; - display = gdk_drag_context_get_display (context); + display = gdk_drag_get_display (drag); xdisplay = GDK_DISPLAY_XDISPLAY (display); xselection = gdk_x11_get_xatom_by_name_for_display (display, "XdndSelection"); - xwindow = GDK_SURFACE_XID (x11_context->ipc_surface); + xwindow = GDK_SURFACE_XID (x11_drag->ipc_surface); if (XGetSelectionOwner (xdisplay, xselection) == xwindow) XSetSelectionOwner (xdisplay, xselection, None, CurrentTime); } static void -gdk_x11_drag_context_drop_done (GdkDragContext *context, +gdk_x11_drag_drop_done (GdkDrag *drag, gboolean success) { - GdkX11DragContext *x11_context = GDK_X11_DRAG_CONTEXT (context); + GdkX11Drag *x11_drag = GDK_X11_DRAG (drag); GdkDragAnim *anim; /* cairo_surface_t *win_surface; @@ -1904,23 +1904,23 @@ gdk_x11_drag_context_drop_done (GdkDragContext *context, */ guint id; - gdk_x11_drag_context_release_selection (context); + gdk_x11_drag_release_selection (drag); - g_signal_handlers_disconnect_by_func (gdk_drag_context_get_display (context), - gdk_x11_drag_context_xevent, - context); + g_signal_handlers_disconnect_by_func (gdk_drag_get_display (drag), + gdk_x11_drag_xevent, + drag); if (success) { - gdk_surface_hide (x11_context->drag_surface); + gdk_surface_hide (x11_drag->drag_surface); return; } /* - win_surface = _gdk_surface_ref_cairo_surface (x11_context->drag_surface); - surface = gdk_surface_create_similar_surface (x11_context->drag_surface, + win_surface = _gdk_surface_ref_cairo_surface (x11_drag->drag_surface); + surface = gdk_surface_create_similar_surface (x11_drag->drag_surface, cairo_surface_get_content (win_surface), - gdk_surface_get_width (x11_context->drag_surface), - gdk_surface_get_height (x11_context->drag_surface)); + gdk_surface_get_width (x11_drag->drag_surface), + gdk_surface_get_height (x11_drag->drag_surface)); cr = cairo_create (surface); cairo_set_source_surface (cr, win_surface, 0, 0); cairo_paint (cr); @@ -1929,15 +1929,15 @@ gdk_x11_drag_context_drop_done (GdkDragContext *context, pattern = cairo_pattern_create_for_surface (surface); - gdk_surface_set_background_pattern (x11_context->drag_surface, pattern); + gdk_surface_set_background_pattern (x11_drag->drag_surface, pattern); cairo_pattern_destroy (pattern); cairo_surface_destroy (surface); */ anim = g_slice_new0 (GdkDragAnim); - anim->context = g_object_ref (x11_context); - anim->frame_clock = gdk_surface_get_frame_clock (x11_context->drag_surface); + anim->drag = g_object_ref (x11_drag); + anim->frame_clock = gdk_surface_get_frame_clock (x11_drag->drag_surface); anim->start_time = gdk_frame_clock_get_frame_time (anim->frame_clock); id = g_timeout_add_full (G_PRIORITY_DEFAULT, 17, @@ -1947,10 +1947,10 @@ gdk_x11_drag_context_drop_done (GdkDragContext *context, } static gboolean -drag_context_grab (GdkDragContext *context) +drag_grab (GdkDrag *drag) { - GdkX11DragContext *x11_context = GDK_X11_DRAG_CONTEXT (context); - GdkDevice *device = gdk_drag_context_get_device (context); + GdkX11Drag *x11_drag = GDK_X11_DRAG (drag); + GdkDevice *device = gdk_drag_get_device (drag); GdkSeatCapabilities capabilities; GdkDisplay *display; Window root; @@ -1958,12 +1958,12 @@ drag_context_grab (GdkDragContext *context) gint keycode, i; GdkCursor *cursor; - if (!x11_context->ipc_surface) + if (!x11_drag->ipc_surface) return FALSE; - display = gdk_drag_context_get_display (context); + display = gdk_drag_get_display (drag); root = GDK_DISPLAY_XROOTWIN (display); - seat = gdk_device_get_seat (gdk_drag_context_get_device (context)); + seat = gdk_device_get_seat (gdk_drag_get_device (drag)); #ifdef XINPUT_2 if (GDK_IS_X11_DEVICE_XI2 (device)) @@ -1972,15 +1972,15 @@ drag_context_grab (GdkDragContext *context) #endif capabilities = GDK_SEAT_CAPABILITY_ALL; - cursor = gdk_drag_get_cursor (context, x11_context->current_action); - g_set_object (&x11_context->cursor, cursor); + cursor = gdk_drag_get_cursor (drag, x11_drag->current_action); + g_set_object (&x11_drag->cursor, cursor); - if (gdk_seat_grab (seat, x11_context->ipc_surface, + if (gdk_seat_grab (seat, x11_drag->ipc_surface, capabilities, FALSE, - x11_context->cursor, NULL, NULL, NULL) != GDK_GRAB_SUCCESS) + x11_drag->cursor, NULL, NULL, NULL) != GDK_GRAB_SUCCESS) return FALSE; - g_set_object (&x11_context->grab_seat, seat); + g_set_object (&x11_drag->grab_seat, seat); gdk_x11_display_error_trap_push (display); @@ -2040,23 +2040,23 @@ drag_context_grab (GdkDragContext *context) } static void -drag_context_ungrab (GdkDragContext *context) +drag_ungrab (GdkDrag *drag) { - GdkX11DragContext *x11_context = GDK_X11_DRAG_CONTEXT (context); + GdkX11Drag *x11_drag = GDK_X11_DRAG (drag); GdkDisplay *display; GdkDevice *keyboard; Window root; gint keycode, i; - if (!x11_context->grab_seat) + if (!x11_drag->grab_seat) return; - gdk_seat_ungrab (x11_context->grab_seat); + gdk_seat_ungrab (x11_drag->grab_seat); - display = gdk_drag_context_get_display (context); - keyboard = gdk_seat_get_keyboard (x11_context->grab_seat); + display = gdk_drag_get_display (drag); + keyboard = gdk_seat_get_keyboard (x11_drag->grab_seat); root = GDK_DISPLAY_XROOTWIN (display); - g_clear_object (&x11_context->grab_seat); + g_clear_object (&x11_drag->grab_seat); for (i = 0; i < G_N_ELEMENTS (grab_keys); ++i) { @@ -2091,91 +2091,91 @@ drag_context_ungrab (GdkDragContext *context) } } -GdkDragContext * -_gdk_x11_surface_drag_begin (GdkSurface *surface, - GdkDevice *device, - GdkContentProvider *content, - GdkDragAction actions, - gint dx, - gint dy) +GdkDrag * +_gdk_x11_surface_drag_begin (GdkSurface *surface, + GdkDevice *device, + GdkContentProvider *content, + GdkDragAction actions, + gint dx, + gint dy) { - GdkX11DragContext *x11_context; - GdkDragContext *context; + GdkX11Drag *x11_drag; + GdkDrag *drag; GdkDisplay *display; int x_root, y_root; Atom xselection; display = gdk_surface_get_display (surface); - context = (GdkDragContext *) g_object_new (GDK_TYPE_X11_DRAG_CONTEXT, + drag = (GdkDrag *) g_object_new (GDK_TYPE_X11_DRAG, "device", device, "content", content, NULL); - x11_context = GDK_X11_DRAG_CONTEXT (context); + x11_drag = GDK_X11_DRAG (drag); - g_signal_connect (display, "xevent", G_CALLBACK (gdk_x11_drag_context_xevent), context); + g_signal_connect (display, "xevent", G_CALLBACK (gdk_x11_drag_xevent), drag); - precache_target_list (context); + precache_target_list (drag); gdk_device_get_position (device, &x_root, &y_root); x_root += dx; y_root += dy; - x11_context->start_x = x_root; - x11_context->start_y = y_root; - x11_context->last_x = x_root; - x11_context->last_y = y_root; + x11_drag->start_x = x_root; + x11_drag->start_y = y_root; + x11_drag->last_x = x_root; + x11_drag->last_y = y_root; - x11_context->protocol = GDK_DRAG_PROTO_XDND; - x11_context->actions = actions; - x11_context->ipc_surface = gdk_surface_new_popup (display, &(GdkRectangle) { -99, -99, 1, 1 }); + x11_drag->protocol = GDK_DRAG_PROTO_XDND; + x11_drag->actions = actions; + x11_drag->ipc_surface = gdk_surface_new_popup (display, &(GdkRectangle) { -99, -99, 1, 1 }); if (gdk_surface_get_group (surface)) - gdk_surface_set_group (x11_context->ipc_surface, surface); - gdk_surface_show (x11_context->ipc_surface); + gdk_surface_set_group (x11_drag->ipc_surface, surface); + gdk_surface_show (x11_drag->ipc_surface); - context->source_surface = x11_context->ipc_surface; - g_object_ref (context->source_surface); + drag->source_surface = x11_drag->ipc_surface; + g_object_ref (drag->source_surface); - x11_context->drag_surface = create_drag_surface (display); + x11_drag->drag_surface = create_drag_surface (display); - if (!drag_context_grab (context)) + if (!drag_grab (drag)) { - g_object_unref (context); + g_object_unref (drag); return NULL; } - move_drag_surface (context, x_root, y_root); + move_drag_surface (drag, x_root, y_root); - x11_context->timestamp = gdk_display_get_last_seen_time (display); + x11_drag->timestamp = gdk_display_get_last_seen_time (display); xselection = gdk_x11_get_xatom_by_name_for_display (display, "XdndSelection"); XSetSelectionOwner (GDK_DISPLAY_XDISPLAY (display), xselection, - GDK_SURFACE_XID (x11_context->ipc_surface), - x11_context->timestamp); - if (XGetSelectionOwner (GDK_DISPLAY_XDISPLAY (display), xselection) != GDK_SURFACE_XID (x11_context->ipc_surface)) + GDK_SURFACE_XID (x11_drag->ipc_surface), + x11_drag->timestamp); + if (XGetSelectionOwner (GDK_DISPLAY_XDISPLAY (display), xselection) != GDK_SURFACE_XID (x11_drag->ipc_surface)) { GDK_DISPLAY_NOTE (display, DND, g_printerr ("failed XSetSelectionOwner() on \"XdndSelection\", aborting DND\n")); - g_object_unref (context); + g_object_unref (drag); return NULL; } - return context; + return drag; } static void -gdk_x11_drag_context_set_cursor (GdkDragContext *context, - GdkCursor *cursor) +gdk_x11_drag_set_cursor (GdkDrag *drag, + GdkCursor *cursor) { - GdkX11DragContext *x11_context = GDK_X11_DRAG_CONTEXT (context); + GdkX11Drag *x11_drag = GDK_X11_DRAG (drag); - if (!g_set_object (&x11_context->cursor, cursor)) + if (!g_set_object (&x11_drag->cursor, cursor)) return; - if (x11_context->grab_seat) + if (x11_drag->grab_seat) { G_GNUC_BEGIN_IGNORE_DEPRECATIONS; - gdk_device_grab (gdk_seat_get_pointer (x11_context->grab_seat), - x11_context->ipc_surface, + gdk_device_grab (gdk_seat_get_pointer (x11_drag->grab_seat), + x11_drag->ipc_surface, GDK_OWNERSHIP_APPLICATION, FALSE, GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK, cursor, GDK_CURRENT_TIME); @@ -2184,19 +2184,19 @@ gdk_x11_drag_context_set_cursor (GdkDragContext *context, } static void -gdk_x11_drag_context_cancel (GdkDragContext *context, - GdkDragCancelReason reason) +gdk_x11_drag_cancel (GdkDrag *drag, + GdkDragCancelReason reason) { - drag_context_ungrab (context); - gdk_drag_drop_done (context, FALSE); + drag_ungrab (drag); + gdk_drag_drop_done (drag, FALSE); } static void -gdk_x11_drag_context_drop_performed (GdkDragContext *context, - guint32 time_) +gdk_x11_drag_drop_performed (GdkDrag *drag, + guint32 time_) { - gdk_drag_drop (context, time_); - drag_context_ungrab (context); + gdk_drag_drop (drag, time_); + drag_ungrab (drag); } #define BIG_STEP 20 @@ -2260,30 +2260,30 @@ gdk_drag_get_current_actions (GdkModifierType state, } static void -gdk_drag_update (GdkDragContext *context, +gdk_drag_update (GdkDrag *drag, gdouble x_root, gdouble y_root, GdkModifierType mods, guint32 evtime) { - GdkX11DragContext *x11_context = GDK_X11_DRAG_CONTEXT (context); + GdkX11Drag *x11_drag = GDK_X11_DRAG (drag); GdkDragAction action, possible_actions; GdkDragProtocol protocol; Window proxy; - gdk_drag_get_current_actions (mods, GDK_BUTTON_PRIMARY, x11_context->actions, + gdk_drag_get_current_actions (mods, GDK_BUTTON_PRIMARY, x11_drag->actions, &action, &possible_actions); - proxy = gdk_x11_drag_context_find_surface (context, - x11_context->drag_surface, + proxy = gdk_x11_drag_find_surface (drag, + x11_drag->drag_surface, x_root, y_root, &protocol); - gdk_x11_drag_context_drag_motion (context, proxy, protocol, x_root, y_root, + gdk_x11_drag_drag_motion (drag, proxy, protocol, x_root, y_root, action, possible_actions, evtime); } static gboolean -gdk_dnd_handle_motion_event (GdkDragContext *context, +gdk_dnd_handle_motion_event (GdkDrag *drag, const GdkEventMotion *event) { GdkModifierType state; @@ -2291,16 +2291,16 @@ gdk_dnd_handle_motion_event (GdkDragContext *context, if (!gdk_event_get_state ((GdkEvent *) event, &state)) return FALSE; - gdk_drag_update (context, event->x_root, event->y_root, state, + gdk_drag_update (drag, event->x_root, event->y_root, state, gdk_event_get_time ((GdkEvent *) event)); return TRUE; } static gboolean -gdk_dnd_handle_key_event (GdkDragContext *context, +gdk_dnd_handle_key_event (GdkDrag *drag, const GdkEventKey *event) { - GdkX11DragContext *x11_context = GDK_X11_DRAG_CONTEXT (context); + GdkX11Drag *x11_drag = GDK_X11_DRAG (drag); GdkModifierType state; GdkDevice *pointer; gint dx, dy; @@ -2314,7 +2314,7 @@ gdk_dnd_handle_key_event (GdkDragContext *context, switch (event->keyval) { case GDK_KEY_Escape: - gdk_drag_context_cancel (context, GDK_DRAG_CANCEL_USER_CANCELLED); + gdk_drag_cancel (drag, GDK_DRAG_CANCEL_USER_CANCELLED); return TRUE; case GDK_KEY_space: @@ -2322,13 +2322,13 @@ gdk_dnd_handle_key_event (GdkDragContext *context, case GDK_KEY_ISO_Enter: case GDK_KEY_KP_Enter: case GDK_KEY_KP_Space: - if ((gdk_drag_context_get_selected_action (context) != 0) && - (x11_context->proxy_xid != None)) + if ((gdk_drag_get_selected_action (drag) != 0) && + (x11_drag->proxy_xid != None)) { - g_signal_emit_by_name (context, "drop-performed"); + g_signal_emit_by_name (drag, "drop-performed"); } else - gdk_drag_context_cancel (context, GDK_DRAG_CANCEL_NO_TARGET); + gdk_drag_cancel (drag, GDK_DRAG_CANCEL_NO_TARGET); return TRUE; @@ -2365,83 +2365,83 @@ gdk_dnd_handle_key_event (GdkDragContext *context, if (dx != 0 || dy != 0) { - x11_context->last_x += dx; - x11_context->last_y += dy; - gdk_device_warp (pointer, x11_context->last_x, x11_context->last_y); + x11_drag->last_x += dx; + x11_drag->last_y += dy; + gdk_device_warp (pointer, x11_drag->last_x, x11_drag->last_y); } - gdk_drag_update (context, x11_context->last_x, x11_context->last_y, state, + gdk_drag_update (drag, x11_drag->last_x, x11_drag->last_y, state, gdk_event_get_time ((GdkEvent *) event)); return TRUE; } static gboolean -gdk_dnd_handle_grab_broken_event (GdkDragContext *context, +gdk_dnd_handle_grab_broken_event (GdkDrag *drag, const GdkEventGrabBroken *event) { - GdkX11DragContext *x11_context = GDK_X11_DRAG_CONTEXT (context); + GdkX11Drag *x11_drag = GDK_X11_DRAG (drag); /* Don't cancel if we break the implicit grab from the initial button_press. * Also, don't cancel if we re-grab on the widget or on our IPC window, for * example, when changing the drag cursor. */ if (event->implicit || - event->grab_surface == x11_context->drag_surface || - event->grab_surface == x11_context->ipc_surface) + event->grab_surface == x11_drag->drag_surface || + event->grab_surface == x11_drag->ipc_surface) return FALSE; if (gdk_event_get_device ((GdkEvent *) event) != - gdk_drag_context_get_device (context)) + gdk_drag_get_device (drag)) return FALSE; - gdk_drag_context_cancel (context, GDK_DRAG_CANCEL_ERROR); + gdk_drag_cancel (drag, GDK_DRAG_CANCEL_ERROR); return TRUE; } static gboolean -gdk_dnd_handle_button_event (GdkDragContext *context, +gdk_dnd_handle_button_event (GdkDrag *drag, const GdkEventButton *event) { - GdkX11DragContext *x11_context = GDK_X11_DRAG_CONTEXT (context); + GdkX11Drag *x11_drag = GDK_X11_DRAG (drag); #if 0 /* FIXME: Check the button matches */ - if (event->button != x11_context->button) + if (event->button != x11_drag->button) return FALSE; #endif - if ((gdk_drag_context_get_selected_action (context) != 0) && - (x11_context->proxy_xid != None)) + if ((gdk_drag_get_selected_action (drag) != 0) && + (x11_drag->proxy_xid != None)) { - g_signal_emit_by_name (context, "drop-performed"); + g_signal_emit_by_name (drag, "drop-performed"); } else - gdk_drag_context_cancel (context, GDK_DRAG_CANCEL_NO_TARGET); + gdk_drag_cancel (drag, GDK_DRAG_CANCEL_NO_TARGET); return TRUE; } gboolean -gdk_x11_drag_context_handle_event (GdkDragContext *context, - const GdkEvent *event) +gdk_x11_drag_handle_event (GdkDrag *drag, + const GdkEvent *event) { - GdkX11DragContext *x11_context = GDK_X11_DRAG_CONTEXT (context); + GdkX11Drag *x11_drag = GDK_X11_DRAG (drag); - if (!x11_context->grab_seat) + if (!x11_drag->grab_seat) return FALSE; switch ((guint) event->any.type) { case GDK_MOTION_NOTIFY: - return gdk_dnd_handle_motion_event (context, &event->motion); + return gdk_dnd_handle_motion_event (drag, &event->motion); case GDK_BUTTON_RELEASE: - return gdk_dnd_handle_button_event (context, &event->button); + return gdk_dnd_handle_button_event (drag, &event->button); case GDK_KEY_PRESS: case GDK_KEY_RELEASE: - return gdk_dnd_handle_key_event (context, &event->key); + return gdk_dnd_handle_key_event (drag, &event->key); case GDK_GRAB_BROKEN: - return gdk_dnd_handle_grab_broken_event (context, &event->grab_broken); + return gdk_dnd_handle_grab_broken_event (drag, &event->grab_broken); default: break; } @@ -2450,11 +2450,11 @@ gdk_x11_drag_context_handle_event (GdkDragContext *context, } void -gdk_x11_drag_context_action_changed (GdkDragContext *context, - GdkDragAction action) -{ +gdk_x11_drag_action_changed (GdkDrag *drag, + GdkDragAction action) +{ GdkCursor *cursor; - cursor = gdk_drag_get_cursor (context, action); - gdk_drag_context_set_cursor (context, cursor); + cursor = gdk_drag_get_cursor (drag, action); + gdk_drag_set_cursor (drag, cursor); } diff --git a/gdk/x11/gdkdrop-x11.c b/gdk/x11/gdkdrop-x11.c index 1bd315efe5..6a71b55cf3 100644 --- a/gdk/x11/gdkdrop-x11.c +++ b/gdk/x11/gdkdrop-x11.c @@ -32,7 +32,7 @@ #include "gdkclipboard-x11.h" #include "gdkdeviceprivate.h" #include "gdkdisplay-x11.h" -#include "gdkdndprivate.h" +#include "gdkdragprivate.h" #include "gdkinternals.h" #include "gdkintl.h" #include "gdkproperty.h" @@ -336,7 +336,7 @@ gdk_x11_drop_read_actions (GdkDrop *drop) { GdkX11Drop *drop_x11 = GDK_X11_DROP (drop); GdkDisplay *display = gdk_drop_get_display (drop); - GdkDragContext *drag; + GdkDrag *drag; GdkDragAction actions = GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK | GDK_ACTION_ASK; Atom type; int format; @@ -398,7 +398,7 @@ gdk_x11_drop_read_actions (GdkDrop *drop) } else { - actions = gdk_drag_context_get_actions (drag); + actions = gdk_drag_get_actions (drag); drop_x11->xdnd_have_actions = TRUE; } @@ -468,7 +468,7 @@ xdnd_enter_filter (GdkSurface *surface, GdkX11Display *display_x11; GdkDrop *drop; GdkX11Drop *drop_x11; - GdkDragContext *drag; + GdkDrag *drag; GdkSeat *seat; gint i; Atom type; @@ -548,7 +548,7 @@ xdnd_enter_filter (GdkSurface *surface, print_target_list (content_formats); #endif /* G_ENABLE_DEBUG */ - drag = gdk_x11_drag_context_find (display, source_window, GDK_SURFACE_XID (surface)); + drag = gdk_x11_drag_find (display, source_window, GDK_SURFACE_XID (surface)); drop_x11 = g_object_new (GDK_TYPE_X11_DROP, "device", gdk_seat_get_pointer (seat), @@ -709,9 +709,6 @@ gdk_x11_drop_filter (GdkSurface *surface, if (xevent->type != ClientMessage) return GDK_FILTER_CONTINUE; - if (gdk_surface_get_surface_type (surface) == GDK_SURFACE_FOREIGN) - return GDK_FILTER_CONTINUE; /* Not for us */ - display = GDK_SURFACE_DISPLAY (surface); for (i = 0; i < G_N_ELEMENTS (xdnd_filters); i++) @@ -771,7 +768,7 @@ gdk_x11_drop_status (GdkDrop *drop, if (gdk_drop_get_drag (drop)) { - gdk_x11_drag_context_handle_status (display, &xev); + gdk_x11_drag_handle_status (display, &xev); } else { @@ -824,7 +821,7 @@ gdk_x11_drop_finish (GdkDrop *drop, if (gdk_drop_get_drag (drop)) { - gdk_x11_drag_context_handle_status (display, &xev); + gdk_x11_drag_handle_status (display, &xev); } else { @@ -852,7 +849,7 @@ gdk_x11_drop_class_init (GdkX11DropClass *klass) } static void -gdk_x11_drop_init (GdkX11Drop *context) +gdk_x11_drop_init (GdkX11Drop *drag) { } diff --git a/gdk/x11/gdkprivate-x11.h b/gdk/x11/gdkprivate-x11.h index 6af2811756..a609c4b93e 100644 --- a/gdk/x11/gdkprivate-x11.h +++ b/gdk/x11/gdkprivate-x11.h @@ -196,16 +196,16 @@ Atom _gdk_x11_get_xatom_for_display_printf (GdkDisplay *display, const gchar *format, ...) G_GNUC_PRINTF (2, 3); -GdkDragContext *gdk_x11_drag_context_find (GdkDisplay *display, - Window source_xid, - Window dest_xid); -void gdk_x11_drag_context_handle_status (GdkDisplay *display, - const XEvent *xevent); -void gdk_x11_drag_context_handle_finished (GdkDisplay *display, - const XEvent *xevent); -void gdk_x11_drop_read_actions (GdkDrop *drop); -gboolean gdk_x11_drop_filter (GdkSurface *surface, - const XEvent *xevent); +GdkDrag *gdk_x11_drag_find (GdkDisplay *display, + Window source_xid, + Window dest_xid); +void gdk_x11_drag_handle_status (GdkDisplay *display, + const XEvent *xevent); +void gdk_x11_drag_handle_finished (GdkDisplay *display, + const XEvent *xevent); +void gdk_x11_drop_read_actions (GdkDrop *drop); +gboolean gdk_x11_drop_filter (GdkSurface *surface, + const XEvent *xevent); typedef struct _GdkSurfaceCache GdkSurfaceCache; @@ -225,7 +225,7 @@ void _gdk_x11_cursor_display_finalize (GdkDisplay *display); void _gdk_x11_surface_register_dnd (GdkSurface *window); -GdkDragContext * _gdk_x11_surface_drag_begin (GdkSurface *window, +GdkDrag * _gdk_x11_surface_drag_begin (GdkSurface *window, GdkDevice *device, GdkContentProvider *content, GdkDragAction actions, diff --git a/gdk/x11/gdksurface-x11.c b/gdk/x11/gdksurface-x11.c index a833b7ccd5..0a7563efe8 100644 --- a/gdk/x11/gdksurface-x11.c +++ b/gdk/x11/gdksurface-x11.c @@ -110,11 +110,6 @@ static void move_to_current_desktop (GdkSurface *surface); static void gdk_surface_impl_x11_finalize (GObject *object); -#define SURFACE_IS_TOPLEVEL_OR_FOREIGN(surface) \ - (GDK_SURFACE_TYPE (surface) == GDK_SURFACE_TOPLEVEL || \ - GDK_SURFACE_TYPE (surface) == GDK_SURFACE_TEMP || \ - GDK_SURFACE_TYPE (surface) == GDK_SURFACE_FOREIGN) - #define SURFACE_IS_TOPLEVEL(surface) \ (GDK_SURFACE_TYPE (surface) == GDK_SURFACE_TOPLEVEL || \ GDK_SURFACE_TYPE (surface) == GDK_SURFACE_TEMP) @@ -1068,8 +1063,7 @@ gdk_x11_surface_destroy_notify (GdkSurface *surface) if (!GDK_SURFACE_DESTROYED (surface)) { - if (GDK_SURFACE_TYPE(surface) != GDK_SURFACE_FOREIGN) - g_warning ("GdkSurface %#lx unexpectedly destroyed", GDK_SURFACE_XID (surface)); + g_warning ("GdkSurface %#lx unexpectedly destroyed", GDK_SURFACE_XID (surface)); _gdk_surface_destroy (surface, TRUE); } @@ -1316,7 +1310,6 @@ gdk_surface_x11_hide (GdkSurface *surface) gdk_surface_withdraw (surface); return; - case GDK_SURFACE_FOREIGN: case GDK_SURFACE_CHILD: default: break; @@ -1473,7 +1466,7 @@ _gdk_x11_surface_set_surface_scale (GdkSurface *surface, _gdk_surface_update_size (surface); toplevel = _gdk_x11_surface_get_toplevel (surface); - if (toplevel && surface->surface_type != GDK_SURFACE_FOREIGN) + if (toplevel) { /* These are affected by surface scale: */ geom_mask = toplevel->last_geometry_hints_mask & @@ -1484,25 +1477,17 @@ _gdk_x11_surface_set_surface_scale (GdkSurface *surface, geom_mask); } - if (surface->surface_type == GDK_SURFACE_FOREIGN) - XMoveWindow (GDK_SURFACE_XDISPLAY (surface), - GDK_SURFACE_XID (surface), - surface->x * impl->surface_scale, - surface->y * impl->surface_scale); - else + if (impl->override_redirect) { - if (impl->override_redirect) - { - impl->unscaled_width = surface->width * impl->surface_scale; - impl->unscaled_height = surface->height * impl->surface_scale; - } - - XResizeWindow (GDK_SURFACE_XDISPLAY (surface), - GDK_SURFACE_XID (surface), - surface->width * impl->surface_scale, - surface->height * impl->surface_scale); + impl->unscaled_width = surface->width * impl->surface_scale; + impl->unscaled_height = surface->height * impl->surface_scale; } + XResizeWindow (GDK_SURFACE_XDISPLAY (surface), + GDK_SURFACE_XID (surface), + surface->width * impl->surface_scale, + surface->height * impl->surface_scale); + gdk_surface_invalidate_rect (surface, NULL); } @@ -1668,7 +1653,7 @@ gdk_x11_surface_focus (GdkSurface *surface, g_return_if_fail (GDK_IS_SURFACE (surface)); if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; display = GDK_SURFACE_DISPLAY (surface); @@ -1718,7 +1703,7 @@ gdk_x11_surface_set_type_hint (GdkSurface *surface, Atom atom; if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; display = gdk_surface_get_display (surface); @@ -1792,7 +1777,7 @@ gdk_x11_surface_get_type_hint (GdkSurface *surface) g_return_val_if_fail (GDK_IS_SURFACE (surface), GDK_SURFACE_TYPE_HINT_NORMAL); if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return GDK_SURFACE_TYPE_HINT_NORMAL; type = GDK_SURFACE_TYPE_HINT_NORMAL; @@ -1879,7 +1864,7 @@ gdk_x11_surface_set_modal_hint (GdkSurface *surface, gboolean modal) { if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; surface->modal_hint = modal; @@ -1899,7 +1884,7 @@ gdk_x11_surface_set_skip_taskbar_hint (GdkSurface *surface, g_return_if_fail (GDK_SURFACE_TYPE (surface) != GDK_SURFACE_CHILD); if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; toplevel = _gdk_x11_surface_get_toplevel (surface); @@ -1920,7 +1905,7 @@ gdk_x11_surface_set_skip_pager_hint (GdkSurface *surface, g_return_if_fail (GDK_SURFACE_TYPE (surface) != GDK_SURFACE_CHILD); if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; toplevel = _gdk_x11_surface_get_toplevel (surface); @@ -1941,7 +1926,7 @@ gdk_x11_surface_set_urgency_hint (GdkSurface *surface, g_return_if_fail (GDK_SURFACE_TYPE (surface) != GDK_SURFACE_CHILD); if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; toplevel = _gdk_x11_surface_get_toplevel (surface); @@ -1960,7 +1945,7 @@ gdk_x11_surface_set_geometry_hints (GdkSurface *surface, GdkToplevelX11 *toplevel; if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; toplevel = _gdk_x11_surface_get_toplevel (surface); @@ -2083,7 +2068,7 @@ gdk_surface_get_geometry_hints (GdkSurface *surface, *geom_mask = 0; if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; impl = GDK_SURFACE_IMPL_X11 (surface->impl); @@ -2232,7 +2217,7 @@ gdk_x11_surface_set_title (GdkSurface *surface, g_return_if_fail (title != NULL); if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; display = gdk_surface_get_display (surface); @@ -2263,7 +2248,7 @@ gdk_x11_surface_set_role (GdkSurface *surface, display = gdk_surface_get_display (surface); if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; if (role) @@ -2286,7 +2271,7 @@ gdk_x11_surface_set_startup_id (GdkSurface *surface, display = gdk_surface_get_display (surface); if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; if (startup_id) @@ -2304,7 +2289,7 @@ gdk_x11_surface_set_transient_for (GdkSurface *surface, GdkSurface *parent) { if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; /* XSetTransientForHint() doesn't allow unsetting, so do it manually */ @@ -2639,7 +2624,7 @@ gdk_x11_surface_set_accept_focus (GdkSurface *surface, surface->accept_focus = accept_focus; if (!GDK_SURFACE_DESTROYED (surface) && - SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + SURFACE_IS_TOPLEVEL (surface)) update_wm_hints (surface, FALSE); } } @@ -2656,7 +2641,7 @@ gdk_x11_surface_set_focus_on_map (GdkSurface *surface, if ((!GDK_SURFACE_DESTROYED (surface)) && (!surface->focus_on_map) && - SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + SURFACE_IS_TOPLEVEL (surface)) gdk_x11_surface_set_user_time (surface, 0); } } @@ -2690,7 +2675,7 @@ gdk_x11_surface_set_user_time (GdkSurface *surface, Window xid; if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; display = gdk_surface_get_display (surface); @@ -2933,7 +2918,7 @@ gdk_x11_surface_set_icon_list (GdkSurface *surface, gint i, n; if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; display = gdk_surface_get_display (surface); @@ -3015,7 +3000,7 @@ gdk_x11_surface_set_icon_name (GdkSurface *surface, GdkDisplay *display; if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; display = gdk_surface_get_display (surface); @@ -3050,7 +3035,7 @@ static void gdk_x11_surface_iconify (GdkSurface *surface) { if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; if (GDK_SURFACE_IS_MAPPED (surface)) @@ -3075,7 +3060,7 @@ static void gdk_x11_surface_deiconify (GdkSurface *surface) { if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; if (GDK_SURFACE_IS_MAPPED (surface)) @@ -3101,7 +3086,7 @@ static void gdk_x11_surface_stick (GdkSurface *surface) { if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; if (GDK_SURFACE_IS_MAPPED (surface)) @@ -3149,7 +3134,7 @@ static void gdk_x11_surface_unstick (GdkSurface *surface) { if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; if (GDK_SURFACE_IS_MAPPED (surface)) @@ -3175,7 +3160,7 @@ static void gdk_x11_surface_maximize (GdkSurface *surface) { if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; if (GDK_SURFACE_IS_MAPPED (surface)) @@ -3192,7 +3177,7 @@ static void gdk_x11_surface_unmaximize (GdkSurface *surface) { if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; if (GDK_SURFACE_IS_MAPPED (surface)) @@ -3209,7 +3194,7 @@ static void gdk_x11_surface_apply_fullscreen_mode (GdkSurface *surface) { if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; /* _NET_WM_FULLSCREEN_MONITORS gives an indication to the window manager as @@ -3301,7 +3286,7 @@ static void gdk_x11_surface_fullscreen (GdkSurface *surface) { if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; if (GDK_SURFACE_IS_MAPPED (surface)) @@ -3328,7 +3313,7 @@ gdk_x11_surface_fullscreen_on_monitor (GdkSurface *surface, GdkRectangle geom; if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; gdk_monitor_get_geometry (monitor, &geom); @@ -3342,7 +3327,7 @@ static void gdk_x11_surface_unfullscreen (GdkSurface *surface) { if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; if (GDK_SURFACE_IS_MAPPED (surface)) @@ -3363,7 +3348,7 @@ gdk_x11_surface_set_keep_above (GdkSurface *surface, g_return_if_fail (GDK_IS_SURFACE (surface)); if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; if (GDK_SURFACE_IS_MAPPED (surface)) @@ -3388,7 +3373,7 @@ gdk_x11_surface_set_keep_below (GdkSurface *surface, gboolean setting) g_return_if_fail (GDK_IS_SURFACE (surface)); if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; if (GDK_SURFACE_IS_MAPPED (surface)) @@ -3539,7 +3524,7 @@ gdk_x11_surface_set_decorations (GdkSurface *surface, MotifWmHints hints; if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; /* initialize to zero to avoid writing uninitialized data to socket */ @@ -3558,7 +3543,7 @@ gdk_x11_surface_get_decorations(GdkSurface *surface, gboolean result = FALSE; if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return FALSE; hints = gdk_surface_get_mwm_hints (surface); @@ -3587,7 +3572,7 @@ gdk_x11_surface_set_functions (GdkSurface *surface, g_return_if_fail (GDK_IS_SURFACE (surface)); if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; /* initialize to zero to avoid writing uninitialized data to socket */ @@ -4369,7 +4354,7 @@ gdk_x11_surface_begin_resize_drag (GdkSurface *surface, guint32 timestamp) { if (GDK_SURFACE_DESTROYED (surface) || - !SURFACE_IS_TOPLEVEL_OR_FOREIGN (surface)) + !SURFACE_IS_TOPLEVEL (surface)) return; /* Avoid EWMH for touch devices */ diff --git a/gdk/x11/gdkx-autocleanups.h b/gdk/x11/gdkx-autocleanups.h index ff3d5a43a9..a6e6e1c024 100644 --- a/gdk/x11/gdkx-autocleanups.h +++ b/gdk/x11/gdkx-autocleanups.h @@ -27,7 +27,7 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DeviceManagerCore, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DeviceManagerXI2, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DeviceXI2, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Display, g_object_unref) -G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DragContext, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Drag, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11GLContext, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Keymap, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Screen, g_object_unref) diff --git a/gdk/x11/gdkx11dnd.h b/gdk/x11/gdkx11dnd.h index a676314219..dfe60500c6 100644 --- a/gdk/x11/gdkx11dnd.h +++ b/gdk/x11/gdkx11dnd.h @@ -26,23 +26,23 @@ G_BEGIN_DECLS -#define GDK_TYPE_X11_DRAG_CONTEXT (gdk_x11_drag_context_get_type ()) -#define GDK_X11_DRAG_CONTEXT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_X11_DRAG_CONTEXT, GdkX11DragContext)) -#define GDK_X11_DRAG_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_X11_DRAG_CONTEXT, GdkX11DragContextClass)) -#define GDK_IS_X11_DRAG_CONTEXT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_X11_DRAG_CONTEXT)) -#define GDK_IS_X11_DRAG_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_X11_DRAG_CONTEXT)) -#define GDK_X11_DRAG_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_X11_DRAG_CONTEXT, GdkX11DragContextClass)) +#define GDK_TYPE_X11_DRAG (gdk_x11_drag_get_type ()) +#define GDK_X11_DRAG(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_X11_DRAG, GdkX11Drag)) +#define GDK_X11_DRAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_X11_DRAG, GdkX11DragClass)) +#define GDK_IS_X11_DRAG(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_X11_DRAG)) +#define GDK_IS_X11_DRAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_X11_DRAG)) +#define GDK_X11_DRAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_X11_DRAG, GdkX11DragClass)) #ifdef GDK_COMPILATION -typedef struct _GdkX11DragContext GdkX11DragContext; +typedef struct _GdkX11Drag GdkX11Drag; #else -typedef GdkDragContext GdkX11DragContext; +typedef GdkDrag GdkX11Drag; #endif -typedef struct _GdkX11DragContextClass GdkX11DragContextClass; +typedef struct _GdkX11DragClass GdkX11DragClass; GDK_AVAILABLE_IN_ALL -GType gdk_x11_drag_context_get_type (void); +GType gdk_x11_drag_get_type (void); G_END_DECLS -#endif /* __GDK_X11_DRAG_CONTEXT_H__ */ +#endif /* __GDK_X11_DRAG_H__ */ diff --git a/gsk/gl/gskglrenderer.c b/gsk/gl/gskglrenderer.c index 2be5fbeadc..76a54728de 100644 --- a/gsk/gl/gskglrenderer.c +++ b/gsk/gl/gskglrenderer.c @@ -13,6 +13,7 @@ #include "gskglglyphcacheprivate.h" #include "gskglrenderopsprivate.h" #include "gskcairoblurprivate.h" +#include "gskglshadowcacheprivate.h" #include "gskprivate.h" @@ -53,7 +54,6 @@ glGetUniformLocation(program_ptr->id, "u_" #uniform_basename);\ }G_STMT_END - static void G_GNUC_UNUSED print_render_node_tree (GskRenderNode *root, int level) { @@ -266,6 +266,7 @@ struct _GskGLRenderer GArray *render_ops; GskGLGlyphCache glyph_cache; + GskGLShadowCache shadow_cache; #ifdef G_ENABLE_DEBUG struct { @@ -321,13 +322,19 @@ render_fallback_node (GskGLRenderer *self, const GskQuadVertex *vertex_data) { const float scale = ops_get_scale (builder); + const int surface_width = ceilf (node->bounds.size.width) * scale; + const int surface_height = ceilf (node->bounds.size.height) * scale; cairo_surface_t *surface; cairo_t *cr; int texture_id; + if (surface_width <= 0 || + surface_height <= 0) + return; + surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, - ceilf (node->bounds.size.width) * scale, - ceilf (node->bounds.size.height) * scale); + surface_width, + surface_height); cairo_surface_set_device_scale (surface, scale, scale); cr = cairo_create (surface); @@ -349,8 +356,8 @@ render_fallback_node (GskGLRenderer *self, /* Upload the Cairo surface to a GL texture */ texture_id = gsk_gl_driver_create_texture (self->gl_driver, - cairo_image_surface_get_width (surface), - cairo_image_surface_get_height (surface)); + surface_width, + surface_height); gsk_gl_driver_bind_source_texture (self->gl_driver, texture_id); gsk_gl_driver_init_texture_with_surface (self->gl_driver, @@ -1071,6 +1078,7 @@ render_outset_shadow_node (GskGLRenderer *self, int prev_render_target; int texture_id, render_target; int blurred_texture_id, blurred_render_target; + int cached_tid; /* offset_outline is the minimal outline we need to draw the given drop shadow, * enlarged by the spread and offset by the blur radius. */ @@ -1092,77 +1100,92 @@ render_outset_shadow_node (GskGLRenderer *self, texture_width = offset_outline.bounds.size.width + blur_extra; texture_height = offset_outline.bounds.size.height + blur_extra; - texture_id = gsk_gl_driver_create_texture (self->gl_driver, texture_width, texture_height); - gsk_gl_driver_bind_source_texture (self->gl_driver, texture_id); - gsk_gl_driver_init_texture_empty (self->gl_driver, texture_id); - render_target = gsk_gl_driver_create_render_target (self->gl_driver, texture_id, FALSE, FALSE); - - - graphene_matrix_init_ortho (&item_proj, - 0, texture_width, 0, texture_height, - ORTHO_NEAR_PLANE, ORTHO_FAR_PLANE); - graphene_matrix_scale (&item_proj, 1, -1, 1); - graphene_matrix_init_identity (&identity); + cached_tid = gsk_gl_shadow_cache_get_texture_id (&self->shadow_cache, + self->gl_driver, + &offset_outline, + blur_radius); + if (cached_tid == 0) + { + texture_id = gsk_gl_driver_create_texture (self->gl_driver, texture_width, texture_height); + gsk_gl_driver_bind_source_texture (self->gl_driver, texture_id); + gsk_gl_driver_init_texture_empty (self->gl_driver, texture_id); + render_target = gsk_gl_driver_create_render_target (self->gl_driver, texture_id, FALSE, FALSE); + + + graphene_matrix_init_ortho (&item_proj, + 0, texture_width, 0, texture_height, + ORTHO_NEAR_PLANE, ORTHO_FAR_PLANE); + graphene_matrix_scale (&item_proj, 1, -1, 1); + graphene_matrix_init_identity (&identity); + + prev_render_target = ops_set_render_target (builder, render_target); + op.op = OP_CLEAR; + ops_add (builder, &op); + prev_projection = ops_set_projection (builder, &item_proj); + prev_modelview = ops_set_modelview (builder, &identity); + prev_viewport = ops_set_viewport (builder, &GRAPHENE_RECT_INIT (0, 0, texture_width, texture_height)); + + /* Draw outline */ + ops_set_program (builder, &self->color_program); + prev_clip = ops_set_clip (builder, &offset_outline); + ops_set_color (builder, gsk_outset_shadow_node_peek_color (node)); + ops_draw (builder, (GskQuadVertex[GL_N_VERTICES]) { + { { 0, }, { 0, 1 }, }, + { { 0, texture_height }, { 0, 0 }, }, + { { texture_width, }, { 1, 1 }, }, - prev_render_target = ops_set_render_target (builder, render_target); - op.op = OP_CLEAR; - ops_add (builder, &op); - prev_projection = ops_set_projection (builder, &item_proj); - prev_modelview = ops_set_modelview (builder, &identity); - prev_viewport = ops_set_viewport (builder, &GRAPHENE_RECT_INIT (0, 0, texture_width, texture_height)); + { { texture_width, texture_height }, { 1, 0 }, }, + { { 0, texture_height }, { 0, 0 }, }, + { { texture_width, }, { 1, 1 }, }, + }); - /* Draw outline */ - ops_set_program (builder, &self->color_program); - prev_clip = ops_set_clip (builder, &offset_outline); - ops_set_color (builder, gsk_outset_shadow_node_peek_color (node)); - ops_draw (builder, (GskQuadVertex[GL_N_VERTICES]) { - { { 0, }, { 0, 1 }, }, - { { 0, texture_height }, { 0, 0 }, }, - { { texture_width, }, { 1, 1 }, }, - - { { texture_width, texture_height }, { 1, 0 }, }, - { { 0, texture_height }, { 0, 0 }, }, - { { texture_width, }, { 1, 1 }, }, - }); - - blurred_texture_id = gsk_gl_driver_create_texture (self->gl_driver, texture_width, texture_height); - gsk_gl_driver_bind_source_texture (self->gl_driver, blurred_texture_id); - gsk_gl_driver_init_texture_empty (self->gl_driver, blurred_texture_id); - blurred_render_target = gsk_gl_driver_create_render_target (self->gl_driver, blurred_texture_id, TRUE, TRUE); - - ops_set_render_target (builder, blurred_render_target); - op.op = OP_CLEAR; - ops_add (builder, &op); + blurred_texture_id = gsk_gl_driver_create_permanent_texture (self->gl_driver, texture_width, texture_height); + gsk_gl_driver_bind_source_texture (self->gl_driver, blurred_texture_id); + gsk_gl_driver_init_texture_empty (self->gl_driver, blurred_texture_id); + blurred_render_target = gsk_gl_driver_create_render_target (self->gl_driver, blurred_texture_id, TRUE, TRUE); - gsk_rounded_rect_init_from_rect (&blit_clip, - &GRAPHENE_RECT_INIT (0, 0, texture_width, texture_height), 0.0f); + ops_set_render_target (builder, blurred_render_target); + op.op = OP_CLEAR; + ops_add (builder, &op); - ops_set_program (builder, &self->blur_program); - op.op = OP_CHANGE_BLUR; - op.blur.size.width = texture_width; - op.blur.size.height = texture_height; - op.blur.radius = blur_radius; - ops_add (builder, &op); + gsk_rounded_rect_init_from_rect (&blit_clip, + &GRAPHENE_RECT_INIT (0, 0, texture_width, texture_height), 0.0f); - ops_set_clip (builder, &blit_clip); - ops_set_texture (builder, texture_id); - ops_draw (builder, (GskQuadVertex[GL_N_VERTICES]) { - { { 0, 0 }, { 0, 1 }, }, - { { 0, texture_height }, { 0, 0 }, }, - { { texture_width, 0 }, { 1, 1 }, }, + ops_set_program (builder, &self->blur_program); + op.op = OP_CHANGE_BLUR; + op.blur.size.width = texture_width; + op.blur.size.height = texture_height; + op.blur.radius = blur_radius; + ops_add (builder, &op); - { { texture_width, texture_height }, { 1, 0 }, }, - { { 0, texture_height }, { 0, 0 }, }, - { { texture_width, 0 }, { 1, 1 }, }, - }); + ops_set_clip (builder, &blit_clip); + ops_set_texture (builder, texture_id); + ops_draw (builder, (GskQuadVertex[GL_N_VERTICES]) { + { { 0, 0 }, { 0, 1 }, }, + { { 0, texture_height }, { 0, 0 }, }, + { { texture_width, 0 }, { 1, 1 }, }, + { { texture_width, texture_height }, { 1, 0 }, }, + { { 0, texture_height }, { 0, 0 }, }, + { { texture_width, 0 }, { 1, 1 }, }, + }); - ops_set_clip (builder, &prev_clip); - ops_set_viewport (builder, &prev_viewport); - ops_set_modelview (builder, &prev_modelview); - ops_set_projection (builder, &prev_projection); - ops_set_render_target (builder, prev_render_target); + ops_set_clip (builder, &prev_clip); + ops_set_viewport (builder, &prev_viewport); + ops_set_modelview (builder, &prev_modelview); + ops_set_projection (builder, &prev_projection); + ops_set_render_target (builder, prev_render_target); + + gsk_gl_shadow_cache_commit (&self->shadow_cache, + &offset_outline, + blur_radius, + blurred_texture_id); + } + else + { + blurred_texture_id = cached_tid; + } ops_set_program (builder, &self->outset_shadow_program); ops_set_texture (builder, blurred_texture_id); @@ -1387,8 +1410,6 @@ render_outset_shadow_node (GskGLRenderer *self, } } - - ops_set_clip (builder, &prev_clip); } static inline void @@ -2000,6 +2021,7 @@ gsk_gl_renderer_realize (GskRenderer *renderer, return FALSE; gsk_gl_glyph_cache_init (&self->glyph_cache, renderer, self->gl_driver); + gsk_gl_shadow_cache_init (&self->shadow_cache); return TRUE; } @@ -2024,6 +2046,7 @@ gsk_gl_renderer_unrealize (GskRenderer *renderer) glDeleteProgram (self->programs[i].id); gsk_gl_glyph_cache_free (&self->glyph_cache); + gsk_gl_shadow_cache_free (&self->shadow_cache, self->gl_driver); g_clear_object (&self->gl_profiler); g_clear_object (&self->gl_driver); @@ -2518,6 +2541,7 @@ gsk_gl_renderer_do_render (GskRenderer *renderer, gsk_gl_driver_begin_frame (self->gl_driver); gsk_gl_glyph_cache_begin_frame (&self->glyph_cache); + gsk_gl_shadow_cache_begin_frame (&self->shadow_cache, self->gl_driver); memset (&render_op_builder, 0, sizeof (render_op_builder)); render_op_builder.renderer = self; diff --git a/gsk/gl/gskglshadowcache.c b/gsk/gl/gskglshadowcache.c new file mode 100644 index 0000000000..8d8960e88b --- /dev/null +++ b/gsk/gl/gskglshadowcache.c @@ -0,0 +1,121 @@ + +#include "gskglshadowcacheprivate.h" + +typedef struct +{ + GskRoundedRect outline; + float blur_radius; +} CacheKey; + +typedef struct +{ + int texture_id; + guint used : 1; +} CacheValue; + +static gboolean +key_equal (const void *x, + const void *y) +{ + const CacheKey *a = x; + const CacheKey *b = y; + + return memcmp (&a->outline, &b->outline, sizeof (GskRoundedRect)) == 0 && + a->blur_radius == b->blur_radius; +} + +void +gsk_gl_shadow_cache_init (GskGLShadowCache *self) +{ + self->textures = g_hash_table_new_full (g_direct_hash, key_equal, g_free, g_free); +} + +void +gsk_gl_shadow_cache_free (GskGLShadowCache *self, + GskGLDriver *gl_driver) +{ + g_hash_table_unref (self->textures); + self->textures = NULL; +} + +void +gsk_gl_shadow_cache_begin_frame (GskGLShadowCache *self, + GskGLDriver *gl_driver) +{ + GHashTableIter iter; + CacheKey *key; + CacheValue *value; + + /* We remove all textures with used = FALSE since those have not been used in the + * last frame. For all others, we reset the `used` value to FALSE instead and see + * if they end up with TRUE in the next call to begin_frame. */ + + g_hash_table_iter_init (&iter, self->textures); + while (g_hash_table_iter_next (&iter, (gpointer *)&key, (gpointer *)&value)) + { + if (!value->used) + { + /* Remove */ + gsk_gl_driver_destroy_texture (gl_driver, value->texture_id); + g_hash_table_iter_remove (&iter); + } + else + { + value->used = FALSE; + } + } +} + +/* XXX + * The offset origin should always be at 0/0, or the blur radius should just go + * away since it defines the origin position anyway? + */ +int +gsk_gl_shadow_cache_get_texture_id (GskGLShadowCache *self, + GskGLDriver *gl_driver, + const GskRoundedRect *shadow_rect, + float blur_radius) +{ + CacheValue *value; + + g_assert (self != NULL); + g_assert (gl_driver != NULL); + g_assert (shadow_rect != NULL); + + value = g_hash_table_lookup (self->textures, + &(CacheKey){ + *shadow_rect, + blur_radius + }); + + if (value == NULL) + return 0; + + value->used = TRUE; + + return value->texture_id; +} + +void +gsk_gl_shadow_cache_commit (GskGLShadowCache *self, + const GskRoundedRect *shadow_rect, + float blur_radius, + int texture_id) +{ + CacheKey *key; + CacheValue *value; + + g_assert (self != NULL); + g_assert (shadow_rect != NULL); + g_assert (texture_id > 0); + + key = g_new0 (CacheKey, 1); + key->outline = *shadow_rect; + key->blur_radius = blur_radius; + + value = g_new0 (CacheValue, 1); + value->used = TRUE; + value->texture_id = texture_id; + + g_hash_table_insert (self->textures, key, value); +} diff --git a/gsk/gl/gskglshadowcacheprivate.h b/gsk/gl/gskglshadowcacheprivate.h new file mode 100644 index 0000000000..e4f4814f21 --- /dev/null +++ b/gsk/gl/gskglshadowcacheprivate.h @@ -0,0 +1,31 @@ + + +#ifndef __GSK_GL_SHADOW_CACHE_H__ +#define __GSK_GL_SHADOW_CACHE_H__ + +#include <glib.h> +#include "gskgldriverprivate.h" +#include "gskroundedrect.h" + +typedef struct +{ + GHashTable *textures; +} GskGLShadowCache; + + +void gsk_gl_shadow_cache_init (GskGLShadowCache *self); +void gsk_gl_shadow_cache_free (GskGLShadowCache *self, + GskGLDriver *gl_driver); +void gsk_gl_shadow_cache_begin_frame (GskGLShadowCache *self, + GskGLDriver *gl_driver); +int gsk_gl_shadow_cache_get_texture_id (GskGLShadowCache *self, + GskGLDriver *gl_driver, + const GskRoundedRect *shadow_rect, + float blur_radius); +void gsk_gl_shadow_cache_commit (GskGLShadowCache *self, + const GskRoundedRect *shadow_rect, + float blur_radius, + int texture_id); + + +#endif diff --git a/gsk/gskenums.h b/gsk/gskenums.h index b605509047..4c17675ef3 100644 --- a/gsk/gskenums.h +++ b/gsk/gskenums.h @@ -48,8 +48,6 @@ * @GSK_OFFSET_NODE: A node that renders its child after applying a 2D translation * * The type of a node determines what the node is rendering. - * - * Since: 3.90 **/ typedef enum { GSK_NOT_A_RENDER_NODE = 0, @@ -89,8 +87,6 @@ typedef enum { * * The actual implementation of each filter is deferred to the * rendering pipeline. - * - * Since: 3.90 */ typedef enum { GSK_SCALING_FILTER_LINEAR, @@ -122,8 +118,6 @@ typedef enum { * * The implementation of each blend mode is deferred to the * rendering pipeline. - * - * Since: 3.90 */ typedef enum { GSK_BLEND_MODE_DEFAULT = 0, diff --git a/gsk/gskrenderer.c b/gsk/gskrenderer.c index 11b8cd2074..d321c50181 100644 --- a/gsk/gskrenderer.c +++ b/gsk/gskrenderer.c @@ -448,8 +448,8 @@ gsk_renderer_render_texture (GskRenderer *renderer, * gsk_renderer_render: * @renderer: a #GskRenderer * @root: a #GskRenderNode - * @region: the #cairo_region_t that must be redrawn or %NULL for the whole - * window + * @region: (nullable): the #cairo_region_t that must be redrawn or %NULL + * for the whole window * * Renders the scene graph, described by a tree of #GskRenderNode instances, * ensuring that the given @region gets redrawn. diff --git a/gsk/gskrendernode.h b/gsk/gskrendernode.h index 0515863cdf..5abcf951fe 100644 --- a/gsk/gskrendernode.h +++ b/gsk/gskrendernode.h @@ -205,14 +205,14 @@ const graphene_matrix_t * GDK_AVAILABLE_IN_ALL GskRenderNode * gsk_offset_node_new (GskRenderNode *child, - double x_offset, - double y_offset); + float x_offset, + float y_offset); GDK_AVAILABLE_IN_ALL GskRenderNode * gsk_offset_node_get_child (GskRenderNode *node); GDK_AVAILABLE_IN_ALL -double gsk_offset_node_get_x_offset (GskRenderNode *node); +float gsk_offset_node_get_x_offset (GskRenderNode *node); GDK_AVAILABLE_IN_ALL -double gsk_offset_node_get_y_offset (GskRenderNode *node); +float gsk_offset_node_get_y_offset (GskRenderNode *node); GDK_AVAILABLE_IN_ALL GskRenderNode * gsk_opacity_node_new (GskRenderNode *child, diff --git a/gsk/gskrendernodeimpl.c b/gsk/gskrendernodeimpl.c index 190eb5beba..8b704aedda 100644 --- a/gsk/gskrendernodeimpl.c +++ b/gsk/gskrendernodeimpl.c @@ -2561,8 +2561,8 @@ struct _GskOffsetNode GskRenderNode render_node; GskRenderNode *child; - double x_offset; - double y_offset; + float x_offset; + float y_offset; }; static void @@ -2694,8 +2694,8 @@ static const GskRenderNodeClass GSK_OFFSET_NODE_CLASS = { */ GskRenderNode * gsk_offset_node_new (GskRenderNode *child, - double x_offset, - double y_offset) + float x_offset, + float y_offset) { GskOffsetNode *self; @@ -2732,7 +2732,7 @@ gsk_offset_node_get_child (GskRenderNode *node) return self->child; } -double +float gsk_offset_node_get_x_offset (GskRenderNode *node) { GskOffsetNode *self = (GskOffsetNode *) node; @@ -2742,7 +2742,7 @@ gsk_offset_node_get_x_offset (GskRenderNode *node) return self->x_offset; } -double +float gsk_offset_node_get_y_offset (GskRenderNode *node) { GskOffsetNode *self = (GskOffsetNode *) node; @@ -3565,7 +3565,7 @@ gsk_clip_node_diff (GskRenderNode *node1, { cairo_region_t *sub; cairo_rectangle_int_t clip_rect; - + sub = cairo_region_create(); gsk_render_node_diff (self1->child, self2->child, sub); rectangle_init_from_graphene (&clip_rect, &self1->clip); @@ -3573,8 +3573,10 @@ gsk_clip_node_diff (GskRenderNode *node1, cairo_region_union (region, sub); cairo_region_destroy (sub); } - - gsk_render_node_diff_impossible (node1, node2, region); + else + { + gsk_render_node_diff_impossible (node1, node2, region); + } } #define GSK_CLIP_NODE_VARIANT_TYPE "(dddduv)" @@ -3737,7 +3739,7 @@ gsk_rounded_clip_node_diff (GskRenderNode *node1, { cairo_region_t *sub; cairo_rectangle_int_t clip_rect; - + sub = cairo_region_create(); gsk_render_node_diff (self1->child, self2->child, sub); rectangle_init_from_graphene (&clip_rect, &self1->clip.bounds); @@ -3745,8 +3747,10 @@ gsk_rounded_clip_node_diff (GskRenderNode *node1, cairo_region_union (region, sub); cairo_region_destroy (sub); } - - gsk_render_node_diff_impossible (node1, node2, region); + else + { + gsk_render_node_diff_impossible (node1, node2, region); + } } #define GSK_ROUNDED_CLIP_NODE_VARIANT_TYPE "(dddddddddddduv)" @@ -4262,8 +4266,10 @@ gsk_blend_node_diff (GskRenderNode *node1, gsk_render_node_diff (self1->top, self2->top, region); gsk_render_node_diff (self1->bottom, self2->bottom, region); } - - gsk_render_node_diff_impossible (node1, node2, region); + else + { + gsk_render_node_diff_impossible (node1, node2, region); + } } #define GSK_BLEND_NODE_VARIANT_TYPE "(uvuvu)" diff --git a/gsk/gskroundedrect.h b/gsk/gskroundedrect.h index 28384417e1..378591af4c 100644 --- a/gsk/gskroundedrect.h +++ b/gsk/gskroundedrect.h @@ -36,8 +36,6 @@ G_BEGIN_DECLS * * Initializes a #GskRoundedRect when declaring it. * All corner sizes will be initialized to 0. - * - * Since: 3.90 */ #define GSK_ROUNDED_RECT_INIT(_x,_y,_w,_h) (GskRoundedRect) { .bounds = GRAPHENE_RECT_INIT(_x,_y,_w,_h), \ .corner = { \ @@ -60,8 +58,6 @@ G_BEGIN_DECLS * All functions taking a #GskRoundedRect as an argument will internally operate on * a normalized copy; all functions returning a #GskRoundedRect will always return * a normalized one. - * - * Since: 3.90 */ typedef struct _GskRoundedRect GskRoundedRect; diff --git a/gsk/meson.build b/gsk/meson.build index 2b9115bb2e..8ad27f7de6 100644 --- a/gsk/meson.build +++ b/gsk/meson.build @@ -41,7 +41,8 @@ gsk_private_sources = files([ 'gl/gskglglyphcache.c', 'gl/gskglimage.c', 'gl/gskgldriver.c', - 'gl/gskglrenderops.c' + 'gl/gskglrenderops.c', + 'gl/gskglshadowcache.c', ]) gsk_public_headers = files([ diff --git a/gtk/a11y/gtkentryaccessible.c b/gtk/a11y/gtkentryaccessible.c index de106c3cf0..f8aaabad87 100644 --- a/gtk/a11y/gtkentryaccessible.c +++ b/gtk/a11y/gtkentryaccessible.c @@ -221,8 +221,6 @@ gtk_entry_icon_accessible_do_action (AtkAction *action, GtkEntryIconAccessible *icon = (GtkEntryIconAccessible *)action; GtkWidget *widget; GtkEntry *gtk_entry; - GdkEvent *event; - GdkRectangle icon_area; widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (icon->entry)); if (widget == NULL) @@ -240,18 +238,7 @@ gtk_entry_icon_accessible_do_action (AtkAction *action, !gtk_entry_get_icon_activatable (gtk_entry, icon->pos)) return FALSE; - gtk_entry_get_icon_area (gtk_entry, icon->pos, &icon_area); - - event = gdk_event_new (GDK_BUTTON_PRESS); - event->any.surface = g_object_ref (gtk_widget_get_surface (widget)); - event->button.button = 1; - event->any.send_event = TRUE; - event->button.time = GDK_CURRENT_TIME; - event->button.x = icon_area.x; - event->button.y = icon_area.y; - - g_signal_emit_by_name (widget, "icon-press", 0, icon->pos, event); - g_object_unref (event); + g_signal_emit_by_name (widget, "icon-press", 0, icon->pos); return TRUE; } diff --git a/gtk/gskpango.c b/gtk/gskpango.c index 20bff5e9c2..ae4a6a81fe 100644 --- a/gtk/gskpango.c +++ b/gtk/gskpango.c @@ -127,10 +127,10 @@ gsk_pango_renderer_show_text_glyphs (PangoRenderer *renderer, return; graphene_rect_init (&node_bounds, - (float)x/PANGO_SCALE, - (float)y/PANGO_SCALE + ink_rect.y, - ink_rect.x + ink_rect.width, - ink_rect.height); + (float)x/PANGO_SCALE - 1.0, + (float)y/PANGO_SCALE + ink_rect.y - 1.0, + ink_rect.x + ink_rect.width + 2.0, + ink_rect.height + 2.0); gtk_snapshot_get_offset (crenderer->snapshot, &x_offset, &y_offset); graphene_rect_offset (&node_bounds, x_offset, y_offset); diff --git a/gtk/gtkaboutdialog.c b/gtk/gtkaboutdialog.c index 83bfe824d9..6503f4ddaf 100644 --- a/gtk/gtkaboutdialog.c +++ b/gtk/gtkaboutdialog.c @@ -139,7 +139,7 @@ typedef struct gchar **people; } CreditSection; -struct _GtkAboutDialogPrivate +typedef struct { gchar *name; gchar *version; @@ -191,7 +191,7 @@ struct _GtkAboutDialogPrivate guint wrap_license : 1; guint in_child_changed : 1; guint in_switch_page : 1; -}; +} GtkAboutDialogPrivate; enum { @@ -274,7 +274,7 @@ stack_visible_child_notify (GtkStack *stack, GParamSpec *pspec, GtkAboutDialog *about) { - GtkAboutDialogPrivate *priv = about->priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); GtkWidget *child; child = gtk_stack_get_visible_child (stack); @@ -627,7 +627,7 @@ emit_activate_link (GtkAboutDialog *about, static void update_stack_switcher_visibility (GtkAboutDialog *about) { - GtkAboutDialogPrivate *priv = about->priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); if (gtk_widget_get_visible (priv->credits_page) || gtk_widget_get_visible (priv->license_page) || @@ -640,7 +640,7 @@ update_stack_switcher_visibility (GtkAboutDialog *about) static void update_license_button_visibility (GtkAboutDialog *about) { - GtkAboutDialogPrivate *priv = about->priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); if (priv->license_type == GTK_LICENSE_CUSTOM && priv->license != NULL && priv->license[0] != '\0') gtk_widget_show (priv->license_page); @@ -653,7 +653,7 @@ update_license_button_visibility (GtkAboutDialog *about) static void update_system_button_visibility (GtkAboutDialog *about) { - GtkAboutDialogPrivate *priv = about->priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); if (priv->system_information != NULL && priv->system_information[0] != '\0') gtk_widget_show (priv->system_page); @@ -666,7 +666,7 @@ update_system_button_visibility (GtkAboutDialog *about) static void update_credits_button_visibility (GtkAboutDialog *about) { - GtkAboutDialogPrivate *priv = about->priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); gboolean show; show = (priv->authors != NULL || @@ -688,7 +688,7 @@ static void switch_page (GtkAboutDialog *about, const gchar *name) { - GtkAboutDialogPrivate *priv = about->priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); gtk_stack_set_visible_child_name (GTK_STACK (priv->stack), name); @@ -705,7 +705,7 @@ switch_page (GtkAboutDialog *about, static void apply_use_header_bar (GtkAboutDialog *about) { - GtkAboutDialogPrivate *priv = about->priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); gboolean use_header_bar; g_object_get (about, "use-header-bar", &use_header_bar, NULL); @@ -740,12 +740,9 @@ apply_use_header_bar (GtkAboutDialog *about) static void gtk_about_dialog_init (GtkAboutDialog *about) { - GtkAboutDialogPrivate *priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); /* Data */ - priv = gtk_about_dialog_get_instance_private (about); - about->priv = priv; - priv->name = NULL; priv->version = NULL; priv->copyright = NULL; @@ -791,7 +788,7 @@ static void gtk_about_dialog_finalize (GObject *object) { GtkAboutDialog *about = GTK_ABOUT_DIALOG (object); - GtkAboutDialogPrivate *priv = about->priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); g_free (priv->name); g_free (priv->version); @@ -884,7 +881,7 @@ gtk_about_dialog_get_property (GObject *object, GParamSpec *pspec) { GtkAboutDialog *about = GTK_ABOUT_DIALOG (object); - GtkAboutDialogPrivate *priv = about->priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); switch (prop_id) { @@ -953,7 +950,7 @@ toggle_credits (GtkToggleButton *button, gpointer user_data) { GtkAboutDialog *about = user_data; - GtkAboutDialogPrivate *priv = about->priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); gboolean show_credits; if (priv->in_switch_page) @@ -968,7 +965,7 @@ toggle_license (GtkToggleButton *button, gpointer user_data) { GtkAboutDialog *about = user_data; - GtkAboutDialogPrivate *priv = about->priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); gboolean show_license; if (priv->in_switch_page) @@ -1010,7 +1007,7 @@ gtk_about_dialog_activate_link (GtkAboutDialog *about, static void update_website (GtkAboutDialog *about) { - GtkAboutDialogPrivate *priv = about->priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); gtk_widget_show (priv->website_label); @@ -1065,19 +1062,19 @@ gtk_about_dialog_show (GtkWidget *widget) const gchar * gtk_about_dialog_get_program_name (GtkAboutDialog *about) { + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); + g_return_val_if_fail (GTK_IS_ABOUT_DIALOG (about), NULL); - return about->priv->name; + return priv->name; } static void update_name_version (GtkAboutDialog *about) { - GtkAboutDialogPrivate *priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); gchar *title_string, *name_string; - priv = about->priv; - title_string = g_strdup_printf (_("About %s"), priv->name); gtk_window_set_title (GTK_WINDOW (about), title_string); g_free (title_string); @@ -1108,13 +1105,11 @@ void gtk_about_dialog_set_program_name (GtkAboutDialog *about, const gchar *name) { - GtkAboutDialogPrivate *priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); gchar *tmp; g_return_if_fail (GTK_IS_ABOUT_DIALOG (about)); - priv = about->priv; - tmp = priv->name; priv->name = g_strdup (name ? name : g_get_application_name ()); g_free (tmp); @@ -1137,9 +1132,11 @@ gtk_about_dialog_set_program_name (GtkAboutDialog *about, const gchar * gtk_about_dialog_get_version (GtkAboutDialog *about) { + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); + g_return_val_if_fail (GTK_IS_ABOUT_DIALOG (about), NULL); - return about->priv->version; + return priv->version; } /** @@ -1153,13 +1150,11 @@ void gtk_about_dialog_set_version (GtkAboutDialog *about, const gchar *version) { - GtkAboutDialogPrivate *priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); gchar *tmp; g_return_if_fail (GTK_IS_ABOUT_DIALOG (about)); - priv = about->priv; - tmp = priv->version; priv->version = g_strdup (version); g_free (tmp); @@ -1181,9 +1176,11 @@ gtk_about_dialog_set_version (GtkAboutDialog *about, const gchar * gtk_about_dialog_get_copyright (GtkAboutDialog *about) { + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); + g_return_val_if_fail (GTK_IS_ABOUT_DIALOG (about), NULL); - return about->priv->copyright; + return priv->copyright; } /** @@ -1198,13 +1195,11 @@ void gtk_about_dialog_set_copyright (GtkAboutDialog *about, const gchar *copyright) { - GtkAboutDialogPrivate *priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); gchar *copyright_string, *tmp; g_return_if_fail (GTK_IS_ABOUT_DIALOG (about)); - priv = about->priv; - tmp = priv->copyright; priv->copyright = g_strdup (copyright); g_free (tmp); @@ -1236,9 +1231,11 @@ gtk_about_dialog_set_copyright (GtkAboutDialog *about, const gchar * gtk_about_dialog_get_comments (GtkAboutDialog *about) { + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); + g_return_val_if_fail (GTK_IS_ABOUT_DIALOG (about), NULL); - return about->priv->comments; + return priv->comments; } /** @@ -1253,13 +1250,11 @@ void gtk_about_dialog_set_comments (GtkAboutDialog *about, const gchar *comments) { - GtkAboutDialogPrivate *priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); gchar *tmp; g_return_if_fail (GTK_IS_ABOUT_DIALOG (about)); - priv = about->priv; - tmp = priv->comments; if (comments) { @@ -1289,9 +1284,11 @@ gtk_about_dialog_set_comments (GtkAboutDialog *about, const gchar * gtk_about_dialog_get_license (GtkAboutDialog *about) { + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); + g_return_val_if_fail (GTK_IS_ABOUT_DIALOG (about), NULL); - return about->priv->license; + return priv->license; } /** @@ -1307,13 +1304,11 @@ void gtk_about_dialog_set_license (GtkAboutDialog *about, const gchar *license) { - GtkAboutDialogPrivate *priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); gchar *tmp; g_return_if_fail (GTK_IS_ABOUT_DIALOG (about)); - priv = about->priv; - tmp = priv->license; if (license) { @@ -1346,9 +1341,11 @@ gtk_about_dialog_set_license (GtkAboutDialog *about, const gchar * gtk_about_dialog_get_system_information (GtkAboutDialog *about) { + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); + g_return_val_if_fail (GTK_IS_ABOUT_DIALOG (about), NULL); - return about->priv->system_information; + return priv->system_information; } /** @@ -1366,12 +1363,10 @@ void gtk_about_dialog_set_system_information (GtkAboutDialog *about, const gchar *system_information) { - GtkAboutDialogPrivate *priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); g_return_if_fail (GTK_IS_ABOUT_DIALOG (about)); - priv = about->priv; - g_free (priv->system_information); priv->system_information = g_strdup (system_information); update_system_button_visibility (about); @@ -1391,9 +1386,11 @@ gtk_about_dialog_set_system_information (GtkAboutDialog *about, gboolean gtk_about_dialog_get_wrap_license (GtkAboutDialog *about) { + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); + g_return_val_if_fail (GTK_IS_ABOUT_DIALOG (about), FALSE); - return about->priv->wrap_license; + return priv->wrap_license; } /** @@ -1408,12 +1405,10 @@ void gtk_about_dialog_set_wrap_license (GtkAboutDialog *about, gboolean wrap_license) { - GtkAboutDialogPrivate *priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); g_return_if_fail (GTK_IS_ABOUT_DIALOG (about)); - priv = about->priv; - wrap_license = wrap_license != FALSE; if (priv->wrap_license != wrap_license) @@ -1436,9 +1431,11 @@ gtk_about_dialog_set_wrap_license (GtkAboutDialog *about, const gchar * gtk_about_dialog_get_website (GtkAboutDialog *about) { + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); + g_return_val_if_fail (GTK_IS_ABOUT_DIALOG (about), NULL); - return about->priv->website_url; + return priv->website_url; } /** @@ -1452,13 +1449,11 @@ void gtk_about_dialog_set_website (GtkAboutDialog *about, const gchar *website) { - GtkAboutDialogPrivate *priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); gchar *tmp; g_return_if_fail (GTK_IS_ABOUT_DIALOG (about)); - priv = about->priv; - tmp = priv->website_url; priv->website_url = g_strdup (website); g_free (tmp); @@ -1480,9 +1475,11 @@ gtk_about_dialog_set_website (GtkAboutDialog *about, const gchar * gtk_about_dialog_get_website_label (GtkAboutDialog *about) { + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); + g_return_val_if_fail (GTK_IS_ABOUT_DIALOG (about), NULL); - return about->priv->website_text; + return priv->website_text; } /** @@ -1496,13 +1493,11 @@ void gtk_about_dialog_set_website_label (GtkAboutDialog *about, const gchar *website_label) { - GtkAboutDialogPrivate *priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); gchar *tmp; g_return_if_fail (GTK_IS_ABOUT_DIALOG (about)); - priv = about->priv; - tmp = priv->website_text; priv->website_text = g_strdup (website_label); g_free (tmp); @@ -1526,9 +1521,11 @@ gtk_about_dialog_set_website_label (GtkAboutDialog *about, const gchar * const * gtk_about_dialog_get_authors (GtkAboutDialog *about) { + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); + g_return_val_if_fail (GTK_IS_ABOUT_DIALOG (about), NULL); - return (const gchar * const *) about->priv->authors; + return (const gchar * const *) priv->authors; } /** @@ -1543,13 +1540,11 @@ void gtk_about_dialog_set_authors (GtkAboutDialog *about, const gchar **authors) { - GtkAboutDialogPrivate *priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); gchar **tmp; g_return_if_fail (GTK_IS_ABOUT_DIALOG (about)); - priv = about->priv; - tmp = priv->authors; priv->authors = g_strdupv ((gchar **)authors); g_strfreev (tmp); @@ -1573,9 +1568,11 @@ gtk_about_dialog_set_authors (GtkAboutDialog *about, const gchar * const * gtk_about_dialog_get_documenters (GtkAboutDialog *about) { + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); + g_return_val_if_fail (GTK_IS_ABOUT_DIALOG (about), NULL); - return (const gchar * const *)about->priv->documenters; + return (const gchar * const *)priv->documenters; } /** @@ -1590,13 +1587,11 @@ void gtk_about_dialog_set_documenters (GtkAboutDialog *about, const gchar **documenters) { - GtkAboutDialogPrivate *priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); gchar **tmp; g_return_if_fail (GTK_IS_ABOUT_DIALOG (about)); - priv = about->priv; - tmp = priv->documenters; priv->documenters = g_strdupv ((gchar **)documenters); g_strfreev (tmp); @@ -1620,9 +1615,11 @@ gtk_about_dialog_set_documenters (GtkAboutDialog *about, const gchar * const * gtk_about_dialog_get_artists (GtkAboutDialog *about) { + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); + g_return_val_if_fail (GTK_IS_ABOUT_DIALOG (about), NULL); - return (const gchar * const *)about->priv->artists; + return (const gchar * const *)priv->artists; } /** @@ -1637,13 +1634,11 @@ void gtk_about_dialog_set_artists (GtkAboutDialog *about, const gchar **artists) { - GtkAboutDialogPrivate *priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); gchar **tmp; g_return_if_fail (GTK_IS_ABOUT_DIALOG (about)); - priv = about->priv; - tmp = priv->artists; priv->artists = g_strdupv ((gchar **)artists); g_strfreev (tmp); @@ -1666,9 +1661,11 @@ gtk_about_dialog_set_artists (GtkAboutDialog *about, const gchar * gtk_about_dialog_get_translator_credits (GtkAboutDialog *about) { + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); + g_return_val_if_fail (GTK_IS_ABOUT_DIALOG (about), NULL); - return about->priv->translator_credits; + return priv->translator_credits; } /** @@ -1697,13 +1694,11 @@ void gtk_about_dialog_set_translator_credits (GtkAboutDialog *about, const gchar *translator_credits) { - GtkAboutDialogPrivate *priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); gchar *tmp; g_return_if_fail (GTK_IS_ABOUT_DIALOG (about)); - priv = about->priv; - tmp = priv->translator_credits; priv->translator_credits = g_strdup (translator_credits); g_free (tmp); @@ -1726,12 +1721,10 @@ gtk_about_dialog_set_translator_credits (GtkAboutDialog *about, GdkPaintable * gtk_about_dialog_get_logo (GtkAboutDialog *about) { - GtkAboutDialogPrivate *priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); g_return_val_if_fail (GTK_IS_ABOUT_DIALOG (about), NULL); - priv = about->priv; - if (gtk_image_get_storage_type (GTK_IMAGE (priv->logo_image)) == GTK_IMAGE_PAINTABLE) return gtk_image_get_paintable (GTK_IMAGE (priv->logo_image)); else @@ -1751,13 +1744,11 @@ void gtk_about_dialog_set_logo (GtkAboutDialog *about, GdkPaintable *logo) { - GtkAboutDialogPrivate *priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); g_return_if_fail (GTK_IS_ABOUT_DIALOG (about)); g_return_if_fail (logo == NULL || GDK_IS_TEXTURE (logo)); - priv = about->priv; - g_object_freeze_notify (G_OBJECT (about)); if (gtk_image_get_storage_type (GTK_IMAGE (priv->logo_image)) == GTK_IMAGE_ICON_NAME) @@ -1796,12 +1787,10 @@ gtk_about_dialog_set_logo (GtkAboutDialog *about, const gchar * gtk_about_dialog_get_logo_icon_name (GtkAboutDialog *about) { - GtkAboutDialogPrivate *priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); g_return_val_if_fail (GTK_IS_ABOUT_DIALOG (about), NULL); - priv = about->priv; - if (gtk_image_get_storage_type (GTK_IMAGE (priv->logo_image)) != GTK_IMAGE_ICON_NAME) return NULL; @@ -1821,13 +1810,11 @@ void gtk_about_dialog_set_logo_icon_name (GtkAboutDialog *about, const gchar *icon_name) { - GtkAboutDialogPrivate *priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); GList *icons; g_return_if_fail (GTK_IS_ABOUT_DIALOG (about)); - priv = about->priv; - g_object_freeze_notify (G_OBJECT (about)); if (gtk_image_get_storage_type (GTK_IMAGE (priv->logo_image)) == GTK_IMAGE_PAINTABLE) @@ -1884,8 +1871,8 @@ follow_if_link (GtkAboutDialog *about, GtkTextView *text_view, GtkTextIter *iter) { + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); GSList *tags = NULL, *tagp = NULL; - GtkAboutDialogPrivate *priv = about->priv; gchar *uri = NULL; tags = gtk_text_iter_get_tags (iter); @@ -1984,7 +1971,7 @@ set_cursor_if_appropriate (GtkAboutDialog *about, gint x, gint y) { - GtkAboutDialogPrivate *priv = about->priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); GSList *tags = NULL, *tagp = NULL; GtkTextIter iter; gboolean hovering_over_link = FALSE; @@ -2039,13 +2026,13 @@ static GtkTextBuffer * text_buffer_new (GtkAboutDialog *about, gchar **strings) { + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); gchar **p; gchar *q0, *q1, *q2, *r1, *r2; GtkTextBuffer *buffer; GdkRGBA color; GdkRGBA link_color; GdkRGBA visited_link_color; - GtkAboutDialogPrivate *priv = about->priv; GtkTextIter start_iter, end_iter; GtkTextTag *tag; GtkStateFlags state = gtk_widget_get_state_flags (GTK_WIDGET (about)); @@ -2290,7 +2277,7 @@ add_credits_section (GtkAboutDialog *about, static void populate_credits_page (GtkAboutDialog *about) { - GtkAboutDialogPrivate *priv = about->priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); gint row; row = 0; @@ -2330,7 +2317,7 @@ populate_credits_page (GtkAboutDialog *about) static void populate_license_page (GtkAboutDialog *about) { - GtkAboutDialogPrivate *priv = about->priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); GtkTextBuffer *buffer; gchar *strings[2]; @@ -2346,7 +2333,7 @@ populate_license_page (GtkAboutDialog *about) static void populate_system_page (GtkAboutDialog *about) { - GtkAboutDialogPrivate *priv = about->priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); GtkTextBuffer *buffer; gchar *strings[2]; @@ -2454,14 +2441,12 @@ void gtk_about_dialog_set_license_type (GtkAboutDialog *about, GtkLicense license_type) { - GtkAboutDialogPrivate *priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); g_return_if_fail (GTK_IS_ABOUT_DIALOG (about)); g_return_if_fail (license_type >= GTK_LICENSE_UNKNOWN && license_type <= GTK_LICENSE_AGPL_3_0_ONLY); - priv = about->priv; - if (priv->license_type != license_type) { g_object_freeze_notify (G_OBJECT (about)); @@ -2524,9 +2509,11 @@ gtk_about_dialog_set_license_type (GtkAboutDialog *about, GtkLicense gtk_about_dialog_get_license_type (GtkAboutDialog *about) { + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); + g_return_val_if_fail (GTK_IS_ABOUT_DIALOG (about), GTK_LICENSE_UNKNOWN); - return about->priv->license_type; + return priv->license_type; } /** @@ -2542,15 +2529,13 @@ gtk_about_dialog_add_credit_section (GtkAboutDialog *about, const gchar *section_name, const gchar **people) { - GtkAboutDialogPrivate *priv; + GtkAboutDialogPrivate *priv = gtk_about_dialog_get_instance_private (about); CreditSection *new_entry; g_return_if_fail (GTK_IS_ABOUT_DIALOG (about)); g_return_if_fail (section_name != NULL); g_return_if_fail (people != NULL); - priv = about->priv; - new_entry = g_slice_new (CreditSection); new_entry->heading = g_strdup ((gchar *)section_name); new_entry->people = g_strdupv ((gchar **)people); diff --git a/gtk/gtkaboutdialog.h b/gtk/gtkaboutdialog.h index fd003b91c0..a78c1e0669 100644 --- a/gtk/gtkaboutdialog.h +++ b/gtk/gtkaboutdialog.h @@ -40,7 +40,6 @@ G_BEGIN_DECLS typedef struct _GtkAboutDialog GtkAboutDialog; typedef struct _GtkAboutDialogClass GtkAboutDialogClass; -typedef struct _GtkAboutDialogPrivate GtkAboutDialogPrivate; /** * GtkLicense: @@ -98,9 +97,6 @@ typedef enum { struct _GtkAboutDialog { GtkDialog parent_instance; - - /*< private >*/ - GtkAboutDialogPrivate *priv; }; struct _GtkAboutDialogClass diff --git a/gtk/gtkaccelgroup.c b/gtk/gtkaccelgroup.c index 18db631212..31f8f92e1f 100644 --- a/gtk/gtkaccelgroup.c +++ b/gtk/gtkaccelgroup.c @@ -694,8 +694,6 @@ gtk_accel_group_connect_by_path (GtkAccelGroup *accel_group, * Removes an accelerator previously installed through * gtk_accel_group_connect(). * - * Since 2.20 @closure can be %NULL. - * * Returns: %TRUE if the closure was found and got disconnected */ gboolean diff --git a/gtk/gtkaccellabel.c b/gtk/gtkaccellabel.c index e8945124e9..1781cb6e11 100644 --- a/gtk/gtkaccellabel.c +++ b/gtk/gtkaccellabel.c @@ -722,64 +722,71 @@ _gtk_accel_label_class_get_accelerator_label (GtkAccelLabelClass *klass, GString *gstring; gboolean seen_mod = FALSE; gunichar ch; - - gstring = g_string_new (""); - + + gstring = g_string_sized_new (10); /* ~len('backspace') */ + if (accelerator_mods & GDK_SHIFT_MASK) { g_string_append (gstring, klass->mod_name_shift); seen_mod = TRUE; } + if (accelerator_mods & GDK_CONTROL_MASK) { if (seen_mod) - g_string_append (gstring, klass->mod_separator); + g_string_append (gstring, klass->mod_separator); g_string_append (gstring, klass->mod_name_control); seen_mod = TRUE; } + if (accelerator_mods & GDK_MOD1_MASK) { if (seen_mod) - g_string_append (gstring, klass->mod_separator); + g_string_append (gstring, klass->mod_separator); g_string_append (gstring, klass->mod_name_alt); seen_mod = TRUE; } + if (accelerator_mods & GDK_MOD2_MASK) { if (seen_mod) - g_string_append (gstring, klass->mod_separator); + g_string_append (gstring, klass->mod_separator); g_string_append (gstring, "Mod2"); seen_mod = TRUE; } + if (accelerator_mods & GDK_MOD3_MASK) { if (seen_mod) - g_string_append (gstring, klass->mod_separator); + g_string_append (gstring, klass->mod_separator); g_string_append (gstring, "Mod3"); seen_mod = TRUE; } + if (accelerator_mods & GDK_MOD4_MASK) { if (seen_mod) - g_string_append (gstring, klass->mod_separator); + g_string_append (gstring, klass->mod_separator); g_string_append (gstring, "Mod4"); seen_mod = TRUE; } + if (accelerator_mods & GDK_MOD5_MASK) { if (seen_mod) - g_string_append (gstring, klass->mod_separator); + g_string_append (gstring, klass->mod_separator); g_string_append (gstring, "Mod5"); seen_mod = TRUE; } + if (accelerator_mods & GDK_SUPER_MASK) { if (seen_mod) - g_string_append (gstring, klass->mod_separator); + g_string_append (gstring, klass->mod_separator); /* This is the text that should appear next to menu accelerators * that use the super key. If the text on this key isn't typically @@ -789,10 +796,11 @@ _gtk_accel_label_class_get_accelerator_label (GtkAccelLabelClass *klass, g_string_append (gstring, C_("keyboard label", "Super")); seen_mod = TRUE; } + if (accelerator_mods & GDK_HYPER_MASK) { if (seen_mod) - g_string_append (gstring, klass->mod_separator); + g_string_append (gstring, klass->mod_separator); /* This is the text that should appear next to menu accelerators * that use the hyper key. If the text on this key isn't typically @@ -802,10 +810,11 @@ _gtk_accel_label_class_get_accelerator_label (GtkAccelLabelClass *klass, g_string_append (gstring, C_("keyboard label", "Hyper")); seen_mod = TRUE; } + if (accelerator_mods & GDK_META_MASK) { if (seen_mod) - g_string_append (gstring, klass->mod_separator); + g_string_append (gstring, klass->mod_separator); #ifndef GDK_WINDOWING_QUARTZ /* This is the text that should appear next to menu accelerators diff --git a/gtk/gtkapplication.c b/gtk/gtkapplication.c index ef5b23f777..aab751ce66 100644 --- a/gtk/gtkapplication.c +++ b/gtk/gtkapplication.c @@ -145,7 +145,7 @@ enum { static GParamSpec *gtk_application_props[NUM_PROPERTIES]; -struct _GtkApplicationPrivate +typedef struct { GtkApplicationImpl *impl; GtkApplicationAccels *accels; @@ -160,7 +160,7 @@ struct _GtkApplicationPrivate GtkActionMuxer *muxer; GtkBuilder *menus_builder; gchar *help_overlay_path; -}; +} GtkApplicationPrivate; G_DEFINE_TYPE_WITH_PRIVATE (GtkApplication, gtk_application, G_TYPE_APPLICATION) @@ -169,7 +169,7 @@ gtk_application_window_active_cb (GtkWindow *window, GParamSpec *pspec, GtkApplication *application) { - GtkApplicationPrivate *priv = application->priv; + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); GList *link; if (!gtk_window_is_active (window)) @@ -183,8 +183,8 @@ gtk_application_window_active_cb (GtkWindow *window, priv->windows = g_list_concat (link, priv->windows); } - if (application->priv->impl) - gtk_application_impl_active_window_changed (application->priv->impl, window); + if (priv->impl) + gtk_application_impl_active_window_changed (priv->impl, window); g_object_notify_by_pspec (G_OBJECT (application), gtk_application_props[PROP_ACTIVE_WINDOW]); } @@ -192,6 +192,7 @@ gtk_application_window_active_cb (GtkWindow *window, static void gtk_application_load_resources (GtkApplication *application) { + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); const gchar *base_path; base_path = g_application_get_resource_base_path (G_APPLICATION (application)); @@ -223,15 +224,15 @@ gtk_application_load_resources (GtkApplication *application) menuspath = g_strconcat (base_path, "/gtk/menus-traditional.ui", NULL); if (g_resources_get_info (menuspath, G_RESOURCE_LOOKUP_FLAGS_NONE, NULL, NULL, NULL)) - application->priv->menus_builder = gtk_builder_new_from_resource (menuspath); + priv->menus_builder = gtk_builder_new_from_resource (menuspath); g_free (menuspath); /* If we didn't get the specific file, fall back. */ - if (application->priv->menus_builder == NULL) + if (priv->menus_builder == NULL) { menuspath = g_strconcat (base_path, "/gtk/menus.ui", NULL); if (g_resources_get_info (menuspath, G_RESOURCE_LOOKUP_FLAGS_NONE, NULL, NULL, NULL)) - application->priv->menus_builder = gtk_builder_new_from_resource (menuspath); + priv->menus_builder = gtk_builder_new_from_resource (menuspath); g_free (menuspath); } @@ -241,22 +242,22 @@ gtk_application_load_resources (GtkApplication *application) { GError *error = NULL; - if (application->priv->menus_builder == NULL) - application->priv->menus_builder = gtk_builder_new (); + if (priv->menus_builder == NULL) + priv->menus_builder = gtk_builder_new (); - if (!gtk_builder_add_from_resource (application->priv->menus_builder, menuspath, &error)) + if (!gtk_builder_add_from_resource (priv->menus_builder, menuspath, &error)) g_error ("failed to load menus-common.ui: %s", error->message); } g_free (menuspath); - if (application->priv->menus_builder) + if (priv->menus_builder) { GObject *menu; - menu = gtk_builder_get_object (application->priv->menus_builder, "app-menu"); + menu = gtk_builder_get_object (priv->menus_builder, "app-menu"); if (menu != NULL && G_IS_MENU_MODEL (menu)) gtk_application_set_app_menu (application, G_MENU_MODEL (menu)); - menu = gtk_builder_get_object (application->priv->menus_builder, "menubar"); + menu = gtk_builder_get_object (priv->menus_builder, "menubar"); if (menu != NULL && G_IS_MENU_MODEL (menu)) gtk_application_set_menubar (application, G_MENU_MODEL (menu)); } @@ -271,7 +272,7 @@ gtk_application_load_resources (GtkApplication *application) { const gchar * const accels[] = { "<Primary>F1", "<Primary>question", NULL }; - application->priv->help_overlay_path = path; + priv->help_overlay_path = path; gtk_application_set_accels_for_action (application, "win.show-help-overlay", accels); } else @@ -286,15 +287,16 @@ static void gtk_application_startup (GApplication *g_application) { GtkApplication *application = GTK_APPLICATION (g_application); + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); G_APPLICATION_CLASS (gtk_application_parent_class)->startup (g_application); - gtk_action_muxer_insert (application->priv->muxer, "app", G_ACTION_GROUP (application)); + gtk_action_muxer_insert (priv->muxer, "app", G_ACTION_GROUP (application)); gtk_init (); - application->priv->impl = gtk_application_impl_new (application, gdk_display_get_default ()); - gtk_application_impl_startup (application->priv->impl, application->priv->register_session); + priv->impl = gtk_application_impl_new (application, gdk_display_get_default ()); + gtk_application_impl_startup (priv->impl, priv->register_session); gtk_application_load_resources (application); } @@ -303,14 +305,15 @@ static void gtk_application_shutdown (GApplication *g_application) { GtkApplication *application = GTK_APPLICATION (g_application); + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); - if (application->priv->impl == NULL) + if (priv->impl == NULL) return; - gtk_application_impl_shutdown (application->priv->impl); - g_clear_object (&application->priv->impl); + gtk_application_impl_shutdown (priv->impl); + g_clear_object (&priv->impl); - gtk_action_muxer_remove (application->priv->muxer, "app"); + gtk_action_muxer_remove (priv->muxer, "app"); gtk_main_sync (); @@ -355,8 +358,9 @@ gtk_application_before_emit (GApplication *g_application, GVariant *platform_data) { GtkApplication *application = GTK_APPLICATION (g_application); + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); - gtk_application_impl_before_emit (application->priv->impl, platform_data); + gtk_application_impl_before_emit (priv->impl, platform_data); } static void @@ -379,18 +383,20 @@ gtk_application_after_emit (GApplication *application, static void gtk_application_init (GtkApplication *application) { - application->priv = gtk_application_get_instance_private (application); + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); - application->priv->muxer = gtk_action_muxer_new (); + priv = gtk_application_get_instance_private (application); - application->priv->accels = gtk_application_accels_new (); + priv->muxer = gtk_action_muxer_new (); + + priv->accels = gtk_application_accels_new (); } static void gtk_application_window_added (GtkApplication *application, GtkWindow *window) { - GtkApplicationPrivate *priv = application->priv; + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); if (GTK_IS_APPLICATION_WINDOW (window)) { @@ -428,7 +434,7 @@ static void gtk_application_window_removed (GtkApplication *application, GtkWindow *window) { - GtkApplicationPrivate *priv = application->priv; + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); gpointer old_active; old_active = priv->windows; @@ -520,11 +526,12 @@ gtk_application_get_property (GObject *object, GParamSpec *pspec) { GtkApplication *application = GTK_APPLICATION (object); + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); switch (prop_id) { case PROP_REGISTER_SESSION: - g_value_set_boolean (value, application->priv->register_session); + g_value_set_boolean (value, priv->register_session); break; case PROP_APP_MENU: @@ -552,11 +559,12 @@ gtk_application_set_property (GObject *object, GParamSpec *pspec) { GtkApplication *application = GTK_APPLICATION (object); + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); switch (prop_id) { case PROP_REGISTER_SESSION: - application->priv->register_session = g_value_get_boolean (value); + priv->register_session = g_value_get_boolean (value); break; case PROP_APP_MENU: @@ -577,14 +585,15 @@ static void gtk_application_finalize (GObject *object) { GtkApplication *application = GTK_APPLICATION (object); + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); - g_clear_object (&application->priv->menus_builder); - g_clear_object (&application->priv->app_menu); - g_clear_object (&application->priv->menubar); - g_clear_object (&application->priv->muxer); - g_clear_object (&application->priv->accels); + g_clear_object (&priv->menus_builder); + g_clear_object (&priv->app_menu); + g_clear_object (&priv->menubar); + g_clear_object (&priv->muxer); + g_clear_object (&priv->accels); - g_free (application->priv->help_overlay_path); + g_free (priv->help_overlay_path); G_OBJECT_CLASS (gtk_application_parent_class)->finalize (object); } @@ -745,6 +754,8 @@ void gtk_application_add_window (GtkApplication *application, GtkWindow *window) { + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); + g_return_if_fail (GTK_IS_APPLICATION (application)); g_return_if_fail (GTK_IS_WINDOW (window)); @@ -755,7 +766,7 @@ gtk_application_add_window (GtkApplication *application, return; } - if (!g_list_find (application->priv->windows, window)) + if (!g_list_find (priv->windows, window)) g_signal_emit (application, gtk_application_signals[WINDOW_ADDED], 0, window); } @@ -778,10 +789,12 @@ void gtk_application_remove_window (GtkApplication *application, GtkWindow *window) { + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); + g_return_if_fail (GTK_IS_APPLICATION (application)); g_return_if_fail (GTK_IS_WINDOW (window)); - if (g_list_find (application->priv->windows, window)) + if (g_list_find (priv->windows, window)) g_signal_emit (application, gtk_application_signals[WINDOW_REMOVED], 0, window); } @@ -805,9 +818,11 @@ gtk_application_remove_window (GtkApplication *application, GList * gtk_application_get_windows (GtkApplication *application) { + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); + g_return_val_if_fail (GTK_IS_APPLICATION (application), NULL); - return application->priv->windows; + return priv->windows; } /** @@ -827,11 +842,12 @@ GtkWindow * gtk_application_get_window_by_id (GtkApplication *application, guint id) { + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); GList *l; g_return_val_if_fail (GTK_IS_APPLICATION (application), NULL); - for (l = application->priv->windows; l != NULL; l = l->next) + for (l = priv->windows; l != NULL; l = l->next) { if (GTK_IS_APPLICATION_WINDOW (l->data) && gtk_application_window_get_id (GTK_APPLICATION_WINDOW (l->data)) == id) @@ -858,17 +874,20 @@ gtk_application_get_window_by_id (GtkApplication *application, GtkWindow * gtk_application_get_active_window (GtkApplication *application) { + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); + g_return_val_if_fail (GTK_IS_APPLICATION (application), NULL); - return application->priv->windows ? application->priv->windows->data : NULL; + return priv->windows ? priv->windows->data : NULL; } static void gtk_application_update_accels (GtkApplication *application) { + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); GList *l; - for (l = application->priv->windows; l != NULL; l = l->next) + for (l = priv->windows; l != NULL; l = l->next) _gtk_window_notify_keys_changed (l->data); } @@ -916,10 +935,12 @@ gtk_application_update_accels (GtkApplication *application) gboolean gtk_application_prefers_app_menu (GtkApplication *application) { + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); + g_return_val_if_fail (GTK_IS_APPLICATION (application), FALSE); - g_return_val_if_fail (application->priv->impl != NULL, FALSE); + g_return_val_if_fail (priv->impl != NULL, FALSE); - return gtk_application_impl_prefers_app_menu (application->priv->impl); + return gtk_application_impl_prefers_app_menu (priv->impl); } /** @@ -949,17 +970,19 @@ void gtk_application_set_app_menu (GtkApplication *application, GMenuModel *app_menu) { + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); + g_return_if_fail (GTK_IS_APPLICATION (application)); g_return_if_fail (g_application_get_is_registered (G_APPLICATION (application))); g_return_if_fail (!g_application_get_is_remote (G_APPLICATION (application))); g_return_if_fail (app_menu == NULL || G_IS_MENU_MODEL (app_menu)); - if (g_set_object (&application->priv->app_menu, app_menu)) + if (g_set_object (&priv->app_menu, app_menu)) { if (app_menu) extract_accels_from_menu (app_menu, application); - gtk_application_impl_set_app_menu (application->priv->impl, app_menu); + gtk_application_impl_set_app_menu (priv->impl, app_menu); g_object_notify_by_pspec (G_OBJECT (application), gtk_application_props[PROP_APP_MENU]); } @@ -978,9 +1001,11 @@ gtk_application_set_app_menu (GtkApplication *application, GMenuModel * gtk_application_get_app_menu (GtkApplication *application) { + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); + g_return_val_if_fail (GTK_IS_APPLICATION (application), NULL); - return application->priv->app_menu; + return priv->app_menu; } /** @@ -1011,17 +1036,19 @@ void gtk_application_set_menubar (GtkApplication *application, GMenuModel *menubar) { + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); + g_return_if_fail (GTK_IS_APPLICATION (application)); g_return_if_fail (g_application_get_is_registered (G_APPLICATION (application))); g_return_if_fail (!g_application_get_is_remote (G_APPLICATION (application))); g_return_if_fail (menubar == NULL || G_IS_MENU_MODEL (menubar)); - if (g_set_object (&application->priv->menubar, menubar)) + if (g_set_object (&priv->menubar, menubar)) { if (menubar) extract_accels_from_menu (menubar, application); - gtk_application_impl_set_menubar (application->priv->impl, menubar); + gtk_application_impl_set_menubar (priv->impl, menubar); g_object_notify_by_pspec (G_OBJECT (application), gtk_application_props[PROP_MENUBAR]); } @@ -1039,9 +1066,11 @@ gtk_application_set_menubar (GtkApplication *application, GMenuModel * gtk_application_get_menubar (GtkApplication *application) { + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); + g_return_val_if_fail (GTK_IS_APPLICATION (application), NULL); - return application->priv->menubar; + return priv->menubar; } /** @@ -1098,11 +1127,13 @@ gtk_application_inhibit (GtkApplication *application, GtkApplicationInhibitFlags flags, const gchar *reason) { + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); + g_return_val_if_fail (GTK_IS_APPLICATION (application), 0); g_return_val_if_fail (!g_application_get_is_remote (G_APPLICATION (application)), 0); g_return_val_if_fail (window == NULL || GTK_IS_WINDOW (window), 0); - return gtk_application_impl_inhibit (application->priv->impl, window, flags, reason); + return gtk_application_impl_inhibit (priv->impl, window, flags, reason); } /** @@ -1117,30 +1148,33 @@ void gtk_application_uninhibit (GtkApplication *application, guint cookie) { + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); + g_return_if_fail (GTK_IS_APPLICATION (application)); g_return_if_fail (!g_application_get_is_remote (G_APPLICATION (application))); g_return_if_fail (cookie > 0); - gtk_application_impl_uninhibit (application->priv->impl, cookie); + gtk_application_impl_uninhibit (priv->impl, cookie); } GtkActionMuxer * gtk_application_get_parent_muxer_for_window (GtkWindow *window) { - GtkApplication *application; - - application = gtk_window_get_application (window); + GtkApplication *application = gtk_window_get_application (window); + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); if (!application) return NULL; - return application->priv->muxer; + return priv->muxer; } GtkApplicationAccels * gtk_application_get_application_accels (GtkApplication *application) { - return application->priv->accels; + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); + + return priv->accels; } /** @@ -1156,9 +1190,11 @@ gtk_application_get_application_accels (GtkApplication *application) gchar ** gtk_application_list_action_descriptions (GtkApplication *application) { + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); + g_return_val_if_fail (GTK_IS_APPLICATION (application), NULL); - return gtk_application_accels_list_action_descriptions (application->priv->accels); + return gtk_application_accels_list_action_descriptions (priv->accels); } /** @@ -1184,18 +1220,19 @@ gtk_application_set_accels_for_action (GtkApplication *application, const gchar *detailed_action_name, const gchar * const *accels) { + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); gchar *action_and_target; g_return_if_fail (GTK_IS_APPLICATION (application)); g_return_if_fail (detailed_action_name != NULL); g_return_if_fail (accels != NULL); - gtk_application_accels_set_accels_for_action (application->priv->accels, + gtk_application_accels_set_accels_for_action (priv->accels, detailed_action_name, accels); action_and_target = gtk_normalise_detailed_action_name (detailed_action_name); - gtk_action_muxer_set_primary_accel (application->priv->muxer, action_and_target, accels[0]); + gtk_action_muxer_set_primary_accel (priv->muxer, action_and_target, accels[0]); g_free (action_and_target); gtk_application_update_accels (application); @@ -1217,10 +1254,12 @@ gchar ** gtk_application_get_accels_for_action (GtkApplication *application, const gchar *detailed_action_name) { + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); + g_return_val_if_fail (GTK_IS_APPLICATION (application), NULL); g_return_val_if_fail (detailed_action_name != NULL, NULL); - return gtk_application_accels_get_accels_for_action (application->priv->accels, + return gtk_application_accels_get_accels_for_action (priv->accels, detailed_action_name); } @@ -1251,18 +1290,22 @@ gchar ** gtk_application_get_actions_for_accel (GtkApplication *application, const gchar *accel) { + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); + g_return_val_if_fail (GTK_IS_APPLICATION (application), NULL); g_return_val_if_fail (accel != NULL, NULL); - return gtk_application_accels_get_actions_for_accel (application->priv->accels, accel); + return gtk_application_accels_get_actions_for_accel (priv->accels, accel); } GtkActionMuxer * gtk_application_get_action_muxer (GtkApplication *application) { - g_assert (application->priv->muxer); + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); - return application->priv->muxer; + g_assert (priv->muxer); + + return priv->muxer; } void @@ -1270,23 +1313,29 @@ gtk_application_insert_action_group (GtkApplication *application, const gchar *name, GActionGroup *action_group) { - gtk_action_muxer_insert (application->priv->muxer, name, action_group); + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); + + gtk_action_muxer_insert (priv->muxer, name, action_group); } void gtk_application_handle_window_realize (GtkApplication *application, GtkWindow *window) { - if (application->priv->impl) - gtk_application_impl_handle_window_realize (application->priv->impl, window); + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); + + if (priv->impl) + gtk_application_impl_handle_window_realize (priv->impl, window); } void gtk_application_handle_window_map (GtkApplication *application, GtkWindow *window) { - if (application->priv->impl) - gtk_application_impl_handle_window_map (application->priv->impl, window); + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); + + if (priv->impl) + gtk_application_impl_handle_window_map (priv->impl, window); } /** @@ -1305,15 +1354,16 @@ GMenu * gtk_application_get_menu_by_id (GtkApplication *application, const gchar *id) { + GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); GObject *object; g_return_val_if_fail (GTK_IS_APPLICATION (application), NULL); g_return_val_if_fail (id != NULL, NULL); - if (!application->priv->menus_builder) + if (!priv->menus_builder) return NULL; - object = gtk_builder_get_object (application->priv->menus_builder, id); + object = gtk_builder_get_object (priv->menus_builder, id); if (!object || !G_IS_MENU (object)) return NULL; diff --git a/gtk/gtkapplication.h b/gtk/gtkapplication.h index e59b6116a9..253644376d 100644 --- a/gtk/gtkapplication.h +++ b/gtk/gtkapplication.h @@ -38,14 +38,10 @@ G_BEGIN_DECLS typedef struct _GtkApplication GtkApplication; typedef struct _GtkApplicationClass GtkApplicationClass; -typedef struct _GtkApplicationPrivate GtkApplicationPrivate; struct _GtkApplication { - GApplication parent; - - /*< private >*/ - GtkApplicationPrivate *priv; + GApplication parent_instance; }; /** diff --git a/gtk/gtkaspectframe.c b/gtk/gtkaspectframe.c index c4b0d7af43..f07f03ca24 100644 --- a/gtk/gtkaspectframe.c +++ b/gtk/gtkaspectframe.c @@ -56,13 +56,13 @@ -struct _GtkAspectFramePrivate +typedef struct { gboolean obey_child; gfloat xalign; gfloat yalign; gfloat ratio; -}; +} GtkAspectFramePrivate; enum { @@ -138,12 +138,12 @@ gtk_aspect_frame_class_init (GtkAspectFrameClass *class) static void gtk_aspect_frame_init (GtkAspectFrame *aspect_frame) { - aspect_frame->priv = gtk_aspect_frame_get_instance_private (aspect_frame); + GtkAspectFramePrivate *priv = gtk_aspect_frame_get_instance_private (aspect_frame); - aspect_frame->priv->xalign = 0.5; - aspect_frame->priv->yalign = 0.5; - aspect_frame->priv->ratio = 1.0; - aspect_frame->priv->obey_child = TRUE; + priv->xalign = 0.5; + priv->yalign = 0.5; + priv->ratio = 1.0; + priv->obey_child = TRUE; } static void @@ -153,7 +153,7 @@ gtk_aspect_frame_set_property (GObject *object, GParamSpec *pspec) { GtkAspectFrame *aspect_frame = GTK_ASPECT_FRAME (object); - GtkAspectFramePrivate *priv = aspect_frame->priv; + GtkAspectFramePrivate *priv = gtk_aspect_frame_get_instance_private (aspect_frame); switch (prop_id) { @@ -199,7 +199,7 @@ gtk_aspect_frame_get_property (GObject *object, GParamSpec *pspec) { GtkAspectFrame *aspect_frame = GTK_ASPECT_FRAME (object); - GtkAspectFramePrivate *priv = aspect_frame->priv; + GtkAspectFramePrivate *priv = gtk_aspect_frame_get_instance_private (aspect_frame); switch (prop_id) { @@ -249,8 +249,7 @@ gtk_aspect_frame_new (const gchar *label, GtkAspectFramePrivate *priv; aspect_frame = g_object_new (GTK_TYPE_ASPECT_FRAME, NULL); - - priv = aspect_frame->priv; + priv = gtk_aspect_frame_get_instance_private (aspect_frame); priv->xalign = CLAMP (xalign, 0.0, 1.0); priv->yalign = CLAMP (yalign, 0.0, 1.0); @@ -284,12 +283,10 @@ gtk_aspect_frame_set (GtkAspectFrame *aspect_frame, gfloat ratio, gboolean obey_child) { - GtkAspectFramePrivate *priv; + GtkAspectFramePrivate *priv = gtk_aspect_frame_get_instance_private (aspect_frame); g_return_if_fail (GTK_IS_ASPECT_FRAME (aspect_frame)); - priv = aspect_frame->priv; - xalign = CLAMP (xalign, 0.0, 1.0); yalign = CLAMP (yalign, 0.0, 1.0); ratio = CLAMP (ratio, MIN_RATIO, MAX_RATIO); @@ -333,7 +330,7 @@ gtk_aspect_frame_compute_child_allocation (GtkFrame *frame, GtkAllocation *child_allocation) { GtkAspectFrame *aspect_frame = GTK_ASPECT_FRAME (frame); - GtkAspectFramePrivate *priv = aspect_frame->priv; + GtkAspectFramePrivate *priv = gtk_aspect_frame_get_instance_private (aspect_frame); GtkBin *bin = GTK_BIN (frame); GtkWidget *child; gdouble ratio; diff --git a/gtk/gtkaspectframe.h b/gtk/gtkaspectframe.h index be06f1fb18..6fd4be6535 100644 --- a/gtk/gtkaspectframe.h +++ b/gtk/gtkaspectframe.h @@ -43,15 +43,11 @@ G_BEGIN_DECLS #define GTK_ASPECT_FRAME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_ASPECT_FRAME, GtkAspectFrameClass)) typedef struct _GtkAspectFrame GtkAspectFrame; -typedef struct _GtkAspectFramePrivate GtkAspectFramePrivate; typedef struct _GtkAspectFrameClass GtkAspectFrameClass; struct _GtkAspectFrame { - GtkFrame frame; - - /*< private >*/ - GtkAspectFramePrivate *priv; + GtkFrame parent_instance; }; /** diff --git a/gtk/gtkbbox.h b/gtk/gtkbbox.h index c8bcf2e1eb..9b92665bf2 100644 --- a/gtk/gtkbbox.h +++ b/gtk/gtkbbox.h @@ -80,11 +80,11 @@ struct _GtkButtonBoxClass * (on the left for a HBox, or the top for a VBox). * @GTK_BUTTONBOX_END: Buttons are grouped towards the end of the box, * (on the right for a HBox, or the bottom for a VBox). - * @GTK_BUTTONBOX_CENTER: Buttons are centered in the box. Since 2.12. + * @GTK_BUTTONBOX_CENTER: Buttons are centered in the box * @GTK_BUTTONBOX_EXPAND: Buttons expand to fill the box. This entails giving * buttons a "linked" appearance, making button sizes homogeneous, and * setting spacing to 0 (same as calling gtk_box_set_homogeneous() and - * gtk_box_set_spacing() manually). Since 3.12. + * gtk_box_set_spacing() manually) * * Used to dictate the style that a #GtkButtonBox uses to layout the buttons it * contains. diff --git a/gtk/gtkbutton.c b/gtk/gtkbutton.c index 4d87d21066..0ed50b0b7e 100644 --- a/gtk/gtkbutton.c +++ b/gtk/gtkbutton.c @@ -61,6 +61,7 @@ #include "gtkcheckbutton.h" #include "gtkcontainerprivate.h" #include "gtkgesturemultipress.h" +#include "gtkeventcontrollerkey.h" #include "gtkimage.h" #include "gtkintl.h" #include "gtklabel.h" @@ -84,9 +85,8 @@ struct _GtkButtonPrivate { GtkActionHelper *action_helper; - GdkDevice *grab_keyboard; - GtkGesture *gesture; + GtkEventController *key_controller; guint activate_timeout; @@ -136,7 +136,6 @@ static void gtk_button_get_property (GObject *object, static void gtk_button_display_changed (GtkWidget *widget, GdkDisplay *previous_display); static void gtk_button_unrealize (GtkWidget * widget); -static gint gtk_button_event (GtkWidget * widget, GdkEvent * event); static void gtk_real_button_clicked (GtkButton * button); static void gtk_real_button_activate (GtkButton *button); static void gtk_button_update_state (GtkButton *button); @@ -212,7 +211,6 @@ gtk_button_class_init (GtkButtonClass *klass) widget_class->display_changed = gtk_button_display_changed; widget_class->unrealize = gtk_button_unrealize; - widget_class->event = gtk_button_event; widget_class->state_flags_changed = gtk_button_state_flags_changed; widget_class->grab_notify = gtk_button_grab_notify; widget_class->unmap = gtk_button_unmap; @@ -402,6 +400,31 @@ multipress_gesture_cancel_cb (GtkGesture *gesture, gtk_button_do_release (button, FALSE); } +static gboolean +key_controller_key_pressed_cb (GtkEventControllerKey *controller, + guint keyval, + guint keycode, + guint modifiers, + GtkButton *button) +{ + GtkButtonPrivate *priv = gtk_button_get_instance_private (button); + + return priv->activate_timeout != 0; +} + +static void +key_controller_key_released_cb (GtkEventControllerKey *controller, + guint keyval, + guint keycode, + guint modifiers, + GtkButton *button) +{ + GtkButtonPrivate *priv = gtk_button_get_instance_private (button); + + if (priv->activate_timeout) + gtk_button_finish_activate (button, TRUE); +} + static void gtk_button_set_child_type (GtkButton *button, guint child_type) { @@ -442,6 +465,11 @@ gtk_button_init (GtkButton *button) g_signal_connect (priv->gesture, "cancel", G_CALLBACK (multipress_gesture_cancel_cb), button); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (priv->gesture), GTK_PHASE_CAPTURE); gtk_widget_add_controller (GTK_WIDGET (button), GTK_EVENT_CONTROLLER (priv->gesture)); + + priv->key_controller = gtk_event_controller_key_new (); + g_signal_connect (priv->key_controller, "key-pressed", G_CALLBACK (key_controller_key_pressed_cb), button); + g_signal_connect (priv->key_controller, "key-released", G_CALLBACK (key_controller_key_released_cb), button); + gtk_widget_add_controller (GTK_WIDGET (button), priv->key_controller); } static void @@ -753,27 +781,6 @@ gtk_button_do_release (GtkButton *button, } } -static gboolean -gtk_button_event (GtkWidget *widget, - GdkEvent *event) -{ - GtkButton *button = GTK_BUTTON (widget); - GtkButtonPrivate *priv = gtk_button_get_instance_private (button); - - if (gdk_event_get_event_type (event) != GDK_KEY_RELEASE) - return GDK_EVENT_PROPAGATE; - - if (priv->activate_timeout) - { - gtk_button_finish_activate (button, TRUE); - return GDK_EVENT_STOP; - } - else if (GTK_WIDGET_CLASS (gtk_button_parent_class)->event) - return GTK_WIDGET_CLASS (gtk_button_parent_class)->event (widget, event); - else - return GDK_EVENT_PROPAGATE; -} - static void gtk_real_button_clicked (GtkButton *button) { @@ -805,15 +812,6 @@ gtk_real_button_activate (GtkButton *button) if (gtk_widget_get_realized (widget) && !priv->activate_timeout) { - /* bgo#626336 - Only grab if we have a device (from an event), not if we - * were activated programmatically when no event is available. - */ - if (device && gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD) - { - gtk_device_grab_add (widget, device, TRUE); - priv->grab_keyboard = device; - } - priv->activate_timeout = g_timeout_add (ACTIVATE_TIMEOUT, button_activate_timeout, button); g_source_set_name_by_id (priv->activate_timeout, "[gtk+] button_activate_timeout"); priv->button_down = TRUE; @@ -825,19 +823,11 @@ static void gtk_button_finish_activate (GtkButton *button, gboolean do_it) { - GtkWidget *widget = GTK_WIDGET (button); GtkButtonPrivate *priv = gtk_button_get_instance_private (button); g_source_remove (priv->activate_timeout); priv->activate_timeout = 0; - if (priv->grab_keyboard) - { - gdk_seat_ungrab (gdk_device_get_seat (priv->grab_keyboard)); - gtk_device_grab_remove (widget, priv->grab_keyboard); - priv->grab_keyboard = NULL; - } - priv->button_down = FALSE; gtk_button_update_state (button); @@ -1032,9 +1022,7 @@ gtk_button_grab_notify (GtkWidget *widget, GTK_WIDGET_CLASS (gtk_button_parent_class)->grab_notify (widget, was_grabbed); - if (priv->activate_timeout && - priv->grab_keyboard && - gtk_widget_device_is_shadowed (widget, priv->grab_keyboard)) + if (was_grabbed && priv->activate_timeout) gtk_button_finish_activate (button, FALSE); if (!was_grabbed) diff --git a/gtk/gtkcalendar.c b/gtk/gtkcalendar.c index 1ccbed01c5..9273969028 100644 --- a/gtk/gtkcalendar.c +++ b/gtk/gtkcalendar.c @@ -308,7 +308,7 @@ static gboolean gtk_calendar_query_tooltip (GtkWidget *widget, GtkTooltip *tooltip); static void gtk_calendar_drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data); static void gtk_calendar_drag_data_received (GtkWidget *widget, GdkDrop *drop, @@ -2660,7 +2660,7 @@ gtk_calendar_drag_update (GtkGestureDrag *gesture, GtkWidget *widget = data; GtkCalendarPrivate *priv = GTK_CALENDAR (widget)->priv; gdouble start_x, start_y; - GdkDragContext *context; + GdkDrag *drag; GdkContentFormats *targets; if (!priv->in_drag) @@ -2675,15 +2675,15 @@ gtk_calendar_drag_update (GtkGestureDrag *gesture, targets = gdk_content_formats_new (NULL, 0); targets = gtk_content_formats_add_text_targets (targets); - context = gtk_drag_begin_with_coordinates (widget, - gtk_gesture_get_device (GTK_GESTURE (gesture)), - targets, GDK_ACTION_COPY, - start_x, start_y); + drag = gtk_drag_begin_with_coordinates (widget, + gtk_gesture_get_device (GTK_GESTURE (gesture)), + targets, GDK_ACTION_COPY, + start_x, start_y); priv->in_drag = 0; gdk_content_formats_unref (targets); - gtk_drag_set_icon_default (context); + gtk_drag_set_icon_default (drag); } static void @@ -2900,7 +2900,7 @@ gtk_calendar_grab_notify (GtkWidget *widget, static void gtk_calendar_drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data) { GtkCalendar *calendar = GTK_CALENDAR (widget); diff --git a/gtk/gtkcellareacontext.c b/gtk/gtkcellareacontext.c index 36691235df..c9ed22063b 100644 --- a/gtk/gtkcellareacontext.c +++ b/gtk/gtkcellareacontext.c @@ -356,8 +356,6 @@ gtk_cell_area_context_get_area (GtkCellAreaContext *context) * in the allocated width necessitates a recalculation * of all the displayed row heights using * gtk_cell_area_get_preferred_height_for_width(). - * - * Since 3.0 */ void gtk_cell_area_context_reset (GtkCellAreaContext *context) @@ -385,8 +383,6 @@ gtk_cell_area_context_reset (GtkCellAreaContext *context) * and vertical orientations producing a homogeneous effect of the * rows. This is generally the case for #GtkTreeView when * #GtkTreeView:fixed-height-mode is enabled. - * - * Since 3.0 */ void gtk_cell_area_context_allocate (GtkCellAreaContext *context, diff --git a/gtk/gtkcellrenderer.h b/gtk/gtkcellrenderer.h index 2b297e1c59..c5d8c55a91 100644 --- a/gtk/gtkcellrenderer.h +++ b/gtk/gtkcellrenderer.h @@ -35,8 +35,8 @@ G_BEGIN_DECLS * @GTK_CELL_RENDERER_INSENSITIVE: The cell is drawn in an insensitive manner * @GTK_CELL_RENDERER_SORTED: The cell is in a sorted row * @GTK_CELL_RENDERER_FOCUSED: The cell is in the focus row. - * @GTK_CELL_RENDERER_EXPANDABLE: The cell is in a row that can be expanded. Since 3.4 - * @GTK_CELL_RENDERER_EXPANDED: The cell is in a row that is expanded. Since 3.4 + * @GTK_CELL_RENDERER_EXPANDABLE: The cell is in a row that can be expanded + * @GTK_CELL_RENDERER_EXPANDED: The cell is in a row that is expanded * * Tells how a cell is to be rendered. */ diff --git a/gtk/gtkcellrenderertext.c b/gtk/gtkcellrenderertext.c index 1e46ea0c56..f7ee9aaee2 100644 --- a/gtk/gtkcellrenderertext.c +++ b/gtk/gtkcellrenderertext.c @@ -539,8 +539,6 @@ gtk_cell_renderer_text_class_init (GtkCellRendererTextClass *class) * * The text that will be displayed in the #GtkCellRenderer if * #GtkCellRendererText:editable is %TRUE and the cell is empty. - * - * Since 3.6 */ text_cell_renderer_props[PROP_PLACEHOLDER_TEXT] = g_param_spec_string ("placeholder-text", diff --git a/gtk/gtkcolorbutton.c b/gtk/gtkcolorbutton.c index 78eec0e16d..9091b65c65 100644 --- a/gtk/gtkcolorbutton.c +++ b/gtk/gtkcolorbutton.c @@ -110,10 +110,10 @@ static void gtk_color_button_clicked (GtkButton *button, /* source side drag signals */ static void gtk_color_button_drag_begin (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, gpointer data); static void gtk_color_button_drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data, GtkColorButton *button); @@ -312,7 +312,7 @@ gtk_color_button_drag_data_received (GtkWidget *widget, } static void -set_color_icon (GdkDragContext *context, +set_color_icon (GdkDrag *drag, const GdkRGBA *rgba) { GtkSnapshot *snapshot; @@ -324,24 +324,24 @@ set_color_icon (GdkDragContext *context, &GRAPHENE_RECT_INIT(0, 0, 48, 32)); paintable = gtk_snapshot_free_to_paintable (snapshot, NULL); - gtk_drag_set_icon_paintable (context, paintable, 0, 0); + gtk_drag_set_icon_paintable (drag, paintable, 0, 0); g_object_unref (paintable); } static void gtk_color_button_drag_begin (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, gpointer data) { GtkColorButton *button = data; GtkColorButtonPrivate *priv = gtk_color_button_get_instance_private (button); - set_color_icon (context, &priv->rgba); + set_color_icon (drag, &priv->rgba); } static void gtk_color_button_drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data, GtkColorButton *button) { diff --git a/gtk/gtkcolorswatch.c b/gtk/gtkcolorswatch.c index 5fd2b11e66..edf3bcc76e 100644 --- a/gtk/gtkcolorswatch.c +++ b/gtk/gtkcolorswatch.c @@ -55,7 +55,7 @@ * be removed for non-activatable swatches. */ -struct _GtkColorSwatchPrivate +typedef struct { GdkRGBA color; gdouble radius[4]; @@ -68,7 +68,7 @@ struct _GtkColorSwatchPrivate GtkWidget *overlay_widget; GtkWidget *popover; -}; +} GtkColorSwatchPrivate; enum { @@ -95,13 +95,13 @@ static void swatch_snapshot (GtkWidget *widget, GtkSnapshot *snapshot) { - GtkColorSwatch *swatch; + GtkColorSwatch *swatch = GTK_COLOR_SWATCH (widget); + GtkColorSwatchPrivate *priv = gtk_color_swatch_get_instance_private (swatch); GtkStyleContext *context; - swatch = GTK_COLOR_SWATCH (widget); context = gtk_widget_get_style_context (widget); - if (swatch->priv->has_color) + if (priv->has_color) { cairo_pattern_t *pattern; cairo_matrix_t matrix; @@ -116,7 +116,7 @@ swatch_snapshot (GtkWidget *widget, gtk_widget_get_height (widget)); gtk_snapshot_push_rounded_clip (snapshot, &content_box); - if (swatch->priv->use_alpha && !gdk_rgba_is_opaque (&swatch->priv->color)) + if (priv->use_alpha && !gdk_rgba_is_opaque (&priv->color)) { cairo_t *cr; @@ -135,12 +135,12 @@ swatch_snapshot (GtkWidget *widget, cairo_destroy (cr); gtk_snapshot_append_color (snapshot, - &swatch->priv->color, + &priv->color, &content_box.bounds); } else { - GdkRGBA color = swatch->priv->color; + GdkRGBA color = priv->color; color.alpha = 1.0; @@ -152,12 +152,12 @@ swatch_snapshot (GtkWidget *widget, gtk_snapshot_pop (snapshot); } - gtk_widget_snapshot_child (widget, swatch->priv->overlay_widget, snapshot); + gtk_widget_snapshot_child (widget, priv->overlay_widget, snapshot); } static void -drag_set_color_icon (GdkDragContext *context, +drag_set_color_icon (GdkDrag *drag, const GdkRGBA *color) { GtkSnapshot *snapshot; @@ -169,24 +169,24 @@ drag_set_color_icon (GdkDragContext *context, &GRAPHENE_RECT_INIT(0, 0, 48, 32)); paintable = gtk_snapshot_free_to_paintable (snapshot, NULL); - gtk_drag_set_icon_paintable (context, paintable, 4, 4); + gtk_drag_set_icon_paintable (drag, paintable, 4, 4); g_object_unref (paintable); } static void swatch_drag_begin (GtkWidget *widget, - GdkDragContext *context) + GdkDrag *drag) { GtkColorSwatch *swatch = GTK_COLOR_SWATCH (widget); GdkRGBA color; gtk_color_swatch_get_rgba (swatch, &color); - drag_set_color_icon (context, &color); + drag_set_color_icon (drag, &color); } static void swatch_drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data) { GtkColorSwatch *swatch = GTK_COLOR_SWATCH (widget); @@ -246,6 +246,7 @@ key_controller_key_pressed (GtkEventControllerKey *controller, GtkWidget *widget) { GtkColorSwatch *swatch = GTK_COLOR_SWATCH (widget); + GtkColorSwatchPrivate *priv = gtk_color_swatch_get_instance_private (swatch); if (keyval == GDK_KEY_space || keyval == GDK_KEY_Return || @@ -253,8 +254,8 @@ key_controller_key_pressed (GtkEventControllerKey *controller, keyval == GDK_KEY_KP_Enter || keyval == GDK_KEY_KP_Space) { - if (swatch->priv->has_color && - swatch->priv->selectable && + if (priv->has_color && + priv->selectable && (gtk_widget_get_state_flags (widget) & GTK_STATE_FLAG_SELECTED) == 0) gtk_widget_set_state_flags (widget, GTK_STATE_FLAG_SELECTED, FALSE); else @@ -274,14 +275,16 @@ emit_customize (GtkColorSwatch *swatch) static void do_popup (GtkColorSwatch *swatch) { - if (swatch->priv->popover == NULL) + GtkColorSwatchPrivate *priv = gtk_color_swatch_get_instance_private (swatch); + + if (priv->popover == NULL) { GtkWidget *box; GtkWidget *item; - swatch->priv->popover = gtk_popover_new (GTK_WIDGET (swatch)); + priv->popover = gtk_popover_new (GTK_WIDGET (swatch)); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); - gtk_container_add (GTK_CONTAINER (swatch->priv->popover), box); + gtk_container_add (GTK_CONTAINER (priv->popover), box); g_object_set (box, "margin", 10, NULL); item = g_object_new (GTK_TYPE_MODEL_BUTTON, "text", _("C_ustomize"), @@ -291,22 +294,23 @@ do_popup (GtkColorSwatch *swatch) gtk_container_add (GTK_CONTAINER (box), item); } - gtk_popover_popup (GTK_POPOVER (swatch->priv->popover)); + gtk_popover_popup (GTK_POPOVER (priv->popover)); } static gboolean swatch_primary_action (GtkColorSwatch *swatch) { + GtkColorSwatchPrivate *priv = gtk_color_swatch_get_instance_private (swatch); GtkWidget *widget = (GtkWidget *)swatch; GtkStateFlags flags; flags = gtk_widget_get_state_flags (widget); - if (!swatch->priv->has_color) + if (!priv->has_color) { g_signal_emit (swatch, signals[ACTIVATE], 0); return TRUE; } - else if (swatch->priv->selectable && + else if (priv->selectable && (flags & GTK_STATE_FLAG_SELECTED) == 0) { gtk_widget_set_state_flags (widget, GTK_STATE_FLAG_SELECTED, FALSE); @@ -333,6 +337,7 @@ tap_action (GtkGestureMultiPress *gesture, gdouble y, GtkColorSwatch *swatch) { + GtkColorSwatchPrivate *priv = gtk_color_swatch_get_instance_private (swatch); guint button; button = gtk_gesture_single_get_current_button (GTK_GESTURE_SINGLE (gesture)); @@ -346,7 +351,7 @@ tap_action (GtkGestureMultiPress *gesture, } else if (button == GDK_BUTTON_SECONDARY) { - if (swatch->priv->has_color && swatch->priv->has_menu) + if (priv->has_color && priv->has_menu) do_popup (swatch); } } @@ -357,7 +362,9 @@ swatch_size_allocate (GtkWidget *widget, int baseline) { GtkColorSwatch *swatch = GTK_COLOR_SWATCH (widget); - gtk_widget_size_allocate (swatch->priv->overlay_widget, allocation, -1); + GtkColorSwatchPrivate *priv = gtk_color_swatch_get_instance_private (swatch); + + gtk_widget_size_allocate (priv->overlay_widget, allocation, -1); } static void @@ -369,12 +376,13 @@ gtk_color_swatch_measure (GtkWidget *widget, int *minimum_baseline, int *natural_baseline) { - GtkColorSwatch *swatch; + GtkColorSwatch *swatch = GTK_COLOR_SWATCH (widget); + GtkColorSwatchPrivate *priv = gtk_color_swatch_get_instance_private (swatch); gint w, h, min; swatch = GTK_COLOR_SWATCH (widget); - gtk_widget_measure (swatch->priv->overlay_widget, + gtk_widget_measure (priv->overlay_widget, orientation, -1, minimum, natural, @@ -402,10 +410,11 @@ swatch_popup_menu (GtkWidget *widget) static void update_icon (GtkColorSwatch *swatch) { - GtkImage *image = GTK_IMAGE (swatch->priv->overlay_widget); + GtkColorSwatchPrivate *priv = gtk_color_swatch_get_instance_private (swatch); + GtkImage *image = GTK_IMAGE (priv->overlay_widget); - if (swatch->priv->icon) - gtk_image_set_from_icon_name (image, swatch->priv->icon); + if (priv->icon) + gtk_image_set_from_icon_name (image, priv->icon); else if (gtk_widget_get_state_flags (GTK_WIDGET (swatch)) & GTK_STATE_FLAG_SELECTED) gtk_image_set_from_icon_name (image, "object-select-symbolic"); else @@ -432,6 +441,7 @@ swatch_get_property (GObject *object, GParamSpec *pspec) { GtkColorSwatch *swatch = GTK_COLOR_SWATCH (object); + GtkColorSwatchPrivate *priv = gtk_color_swatch_get_instance_private (swatch); GdkRGBA color; switch (prop_id) @@ -444,7 +454,7 @@ swatch_get_property (GObject *object, g_value_set_boolean (value, gtk_color_swatch_get_selectable (swatch)); break; case PROP_HAS_MENU: - g_value_set_boolean (value, swatch->priv->has_menu); + g_value_set_boolean (value, priv->has_menu); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -459,6 +469,7 @@ swatch_set_property (GObject *object, GParamSpec *pspec) { GtkColorSwatch *swatch = GTK_COLOR_SWATCH (object); + GtkColorSwatchPrivate *priv = gtk_color_swatch_get_instance_private (swatch); switch (prop_id) { @@ -469,7 +480,7 @@ swatch_set_property (GObject *object, gtk_color_swatch_set_selectable (swatch, g_value_get_boolean (value)); break; case PROP_HAS_MENU: - swatch->priv->has_menu = g_value_get_boolean (value); + priv->has_menu = g_value_get_boolean (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -481,9 +492,10 @@ static void swatch_finalize (GObject *object) { GtkColorSwatch *swatch = GTK_COLOR_SWATCH (object); + GtkColorSwatchPrivate *priv = gtk_color_swatch_get_instance_private (swatch); - g_free (swatch->priv->icon); - gtk_widget_unparent (swatch->priv->overlay_widget); + g_free (priv->icon); + gtk_widget_unparent (priv->overlay_widget); G_OBJECT_CLASS (gtk_color_swatch_parent_class)->finalize (object); } @@ -492,11 +504,12 @@ static void swatch_dispose (GObject *object) { GtkColorSwatch *swatch = GTK_COLOR_SWATCH (object); + GtkColorSwatchPrivate *priv = gtk_color_swatch_get_instance_private (swatch); - if (swatch->priv->popover) + if (priv->popover) { - gtk_widget_destroy (swatch->priv->popover); - swatch->priv->popover = NULL; + gtk_widget_destroy (priv->popover); + priv->popover = NULL; } G_OBJECT_CLASS (gtk_color_swatch_parent_class)->dispose (object); @@ -553,13 +566,14 @@ gtk_color_swatch_class_init (GtkColorSwatchClass *class) static void gtk_color_swatch_init (GtkColorSwatch *swatch) { + GtkColorSwatchPrivate *priv = gtk_color_swatch_get_instance_private (swatch); GtkEventController *controller; GtkGesture *gesture; - swatch->priv = gtk_color_swatch_get_instance_private (swatch); - swatch->priv->use_alpha = TRUE; - swatch->priv->selectable = TRUE; - swatch->priv->has_menu = TRUE; + priv = gtk_color_swatch_get_instance_private (swatch); + priv->use_alpha = TRUE; + priv->selectable = TRUE; + priv->has_menu = TRUE; gtk_widget_set_can_focus (GTK_WIDGET (swatch), TRUE); gtk_widget_set_has_surface (GTK_WIDGET (swatch), FALSE); @@ -584,10 +598,10 @@ gtk_color_swatch_init (GtkColorSwatch *swatch) gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (swatch)), "activatable"); - swatch->priv->overlay_widget = g_object_new (GTK_TYPE_IMAGE, + priv->overlay_widget = g_object_new (GTK_TYPE_IMAGE, "css-name", "overlay", NULL); - gtk_widget_set_parent (swatch->priv->overlay_widget, GTK_WIDGET (swatch)); + gtk_widget_set_parent (priv->overlay_widget, GTK_WIDGET (swatch)); } /* Public API {{{1 */ @@ -606,11 +620,12 @@ void gtk_color_swatch_set_rgba (GtkColorSwatch *swatch, const GdkRGBA *color) { + GtkColorSwatchPrivate *priv = gtk_color_swatch_get_instance_private (swatch); GtkStyleContext *context; context = gtk_widget_get_style_context (GTK_WIDGET (swatch)); - if (!swatch->priv->has_color) + if (!priv->has_color) { GdkContentFormats *targets = gdk_content_formats_new (dnd_targets, G_N_ELEMENTS (dnd_targets)); gtk_drag_source_set (GTK_WIDGET (swatch), @@ -620,10 +635,10 @@ gtk_color_swatch_set_rgba (GtkColorSwatch *swatch, gdk_content_formats_unref (targets); } - swatch->priv->has_color = TRUE; - swatch->priv->color = *color; + priv->has_color = TRUE; + priv->color = *color; - if (INTENSITY (swatch->priv->color.red, swatch->priv->color.green, swatch->priv->color.blue) > 0.5) + if (INTENSITY (priv->color.red, priv->color.green, priv->color.blue) > 0.5) { gtk_style_context_add_class (context, "light"); gtk_style_context_remove_class (context, "dark"); @@ -642,12 +657,14 @@ gboolean gtk_color_swatch_get_rgba (GtkColorSwatch *swatch, GdkRGBA *color) { - if (swatch->priv->has_color) + GtkColorSwatchPrivate *priv = gtk_color_swatch_get_instance_private (swatch); + + if (priv->has_color) { - color->red = swatch->priv->color.red; - color->green = swatch->priv->color.green; - color->blue = swatch->priv->color.blue; - color->alpha = swatch->priv->color.alpha; + color->red = priv->color.red; + color->green = priv->color.green; + color->blue = priv->color.blue; + color->alpha = priv->color.alpha; return TRUE; } else @@ -664,7 +681,9 @@ void gtk_color_swatch_set_icon (GtkColorSwatch *swatch, const gchar *icon) { - swatch->priv->icon = g_strdup (icon); + GtkColorSwatchPrivate *priv = gtk_color_swatch_get_instance_private (swatch); + + priv->icon = g_strdup (icon); update_icon (swatch); gtk_widget_queue_draw (GTK_WIDGET (swatch)); } @@ -694,7 +713,9 @@ void gtk_color_swatch_set_use_alpha (GtkColorSwatch *swatch, gboolean use_alpha) { - swatch->priv->use_alpha = use_alpha; + GtkColorSwatchPrivate *priv = gtk_color_swatch_get_instance_private (swatch); + + priv->use_alpha = use_alpha; gtk_widget_queue_draw (GTK_WIDGET (swatch)); } @@ -702,17 +723,21 @@ void gtk_color_swatch_set_selectable (GtkColorSwatch *swatch, gboolean selectable) { - if (selectable == swatch->priv->selectable) + GtkColorSwatchPrivate *priv = gtk_color_swatch_get_instance_private (swatch); + + if (selectable == priv->selectable) return; - swatch->priv->selectable = selectable; + priv->selectable = selectable; g_object_notify (G_OBJECT (swatch), "selectable"); } gboolean gtk_color_swatch_get_selectable (GtkColorSwatch *swatch) { - return swatch->priv->selectable; + GtkColorSwatchPrivate *priv = gtk_color_swatch_get_instance_private (swatch); + + return priv->selectable; } /* vim:set foldmethod=marker: */ diff --git a/gtk/gtkcolorswatchprivate.h b/gtk/gtkcolorswatchprivate.h index f7e80bc9da..95898a09c6 100644 --- a/gtk/gtkcolorswatchprivate.h +++ b/gtk/gtkcolorswatchprivate.h @@ -32,14 +32,10 @@ G_BEGIN_DECLS typedef struct _GtkColorSwatch GtkColorSwatch; typedef struct _GtkColorSwatchClass GtkColorSwatchClass; -typedef struct _GtkColorSwatchPrivate GtkColorSwatchPrivate; struct _GtkColorSwatch { - GtkWidget parent; - - /*< private >*/ - GtkColorSwatchPrivate *priv; + GtkWidget parent_instance; }; struct _GtkColorSwatchClass diff --git a/gtk/gtkcontainer.c b/gtk/gtkcontainer.c index 9f11262a7c..00427aae05 100644 --- a/gtk/gtkcontainer.c +++ b/gtk/gtkcontainer.c @@ -113,11 +113,11 @@ * a <packing> element for children, which can contain multiple <property> * elements that specify child properties for the child. * - * Since 2.16, child properties can also be marked as translatable using + * Child properties can also be marked as translatable using * the same “translatable”, “comments” and “context” attributes that are used * for regular properties. * - * Since 3.16, containers can have a <focus-chain> element containing multiple + * Containers can have a <focus-chain> element containing multiple * <widget> elements, one for each child that should be added to the focus * chain. The ”name” attribute gives the id of the widget. * diff --git a/gtk/gtkcsssection.h b/gtk/gtkcsssection.h index 8553633fcd..8dc7ac90b5 100644 --- a/gtk/gtkcsssection.h +++ b/gtk/gtkcsssection.h @@ -41,7 +41,7 @@ G_BEGIN_DECLS * a CSS variable. * @GTK_CSS_SECTION_VALUE: The section defines the value of a CSS declaration. * @GTK_CSS_SECTION_KEYFRAMES: The section defines keyframes. See [CSS - * Animations](http://dev.w3.org/csswg/css3-animations/#keyframes) for details. Since 3.6 + * Animations](http://dev.w3.org/csswg/css3-animations/#keyframes) for details * * The different types of sections indicate parts of a CSS document as * parsed by GTK’s CSS parser. They are oriented towards the diff --git a/gtk/gtkcssshorthandpropertyimpl.c b/gtk/gtkcssshorthandpropertyimpl.c index aad46d8679..be88cc672b 100644 --- a/gtk/gtkcssshorthandpropertyimpl.c +++ b/gtk/gtkcssshorthandpropertyimpl.c @@ -1080,12 +1080,10 @@ pack_border_radius (GtkCssShorthandProperty *shorthand, GtkStyleQueryFunc query_func, gpointer query_data) { - GtkCssStyleProperty *prop; GtkCssValue *v; int i = 0; - prop = GTK_CSS_STYLE_PROPERTY (_gtk_style_property_lookup ("border-top-left-radius")); - v = (* query_func) (_gtk_css_style_property_get_id (prop), query_data); + v = (* query_func) (GTK_CSS_PROPERTY_BORDER_TOP_LEFT_RADIUS, query_data); if (v) i = _gtk_css_corner_value_get_x (v, 100); @@ -1101,32 +1099,29 @@ pack_font_description (GtkCssShorthandProperty *shorthand, { PangoFontDescription *description; GtkCssValue *v; - double dpi; description = pango_font_description_new (); - v = (* query_func) (_gtk_css_style_property_get_id (GTK_CSS_STYLE_PROPERTY (_gtk_style_property_lookup ("font-family"))), query_data); + v = (* query_func) (GTK_CSS_PROPERTY_FONT_FAMILY, query_data); if (v) { /* xxx: Can we set all the families here somehow? */ pango_font_description_set_family (description, _gtk_css_string_value_get (_gtk_css_array_value_get_nth (v, 0))); } - v = (* query_func) (_gtk_css_style_property_get_id (GTK_CSS_STYLE_PROPERTY (_gtk_style_property_lookup ("-gtk-dpi"))), query_data); - dpi = _gtk_css_number_value_get (v, 96); - v = (* query_func) (_gtk_css_style_property_get_id (GTK_CSS_STYLE_PROPERTY (_gtk_style_property_lookup ("font-size"))), query_data); + v = (* query_func) (GTK_CSS_PROPERTY_FONT_SIZE, query_data); if (v) - pango_font_description_set_size (description, round (_gtk_css_number_value_get (v, 100) * PANGO_SCALE * 72 / dpi)); + pango_font_description_set_absolute_size (description, round (_gtk_css_number_value_get (v, 100) * PANGO_SCALE)); - v = (* query_func) (_gtk_css_style_property_get_id (GTK_CSS_STYLE_PROPERTY (_gtk_style_property_lookup ("font-style"))), query_data); + v = (* query_func) (GTK_CSS_PROPERTY_FONT_STYLE, query_data); if (v) pango_font_description_set_style (description, _gtk_css_font_style_value_get (v)); - v = (* query_func) (_gtk_css_style_property_get_id (GTK_CSS_STYLE_PROPERTY (_gtk_style_property_lookup ("font-weight"))), query_data); + v = (* query_func) (GTK_CSS_PROPERTY_FONT_WEIGHT, query_data); if (v) pango_font_description_set_weight (description, _gtk_css_font_weight_value_get (v)); - v = (* query_func) (_gtk_css_style_property_get_id (GTK_CSS_STYLE_PROPERTY (_gtk_style_property_lookup ("font-stretch"))), query_data); + v = (* query_func) (GTK_CSS_PROPERTY_FONT_STRETCH, query_data); if (v) pango_font_description_set_stretch (description, _gtk_css_font_stretch_value_get (v)); diff --git a/gtk/gtkdialog.c b/gtk/gtkdialog.c index 3c7acf5895..756446aaa8 100644 --- a/gtk/gtkdialog.c +++ b/gtk/gtkdialog.c @@ -51,14 +51,14 @@ * SECTION:gtkdialog * @Short_description: Create popup windows * @Title: GtkDialog - * @See_also: #GtkVBox, #GtkWindow, #GtkButton + * @See_also: #GtkBox, #GtkWindow, #GtkButton * * Dialog boxes are a convenient way to prompt the user for a small amount * of input, e.g. to display a message, ask a question, or anything else * that does not require extensive effort on the user’s part. * * GTK+ treats a dialog as a window split vertically. The top section is a - * #GtkVBox, and is where widgets such as a #GtkLabel or a #GtkEntry should + * #GtkBox, and is where widgets such as a #GtkLabel or a #GtkEntry should * be packed. The bottom area is known as the * “action area”. This is generally used for * packing buttons into the dialog which may perform functions such as @@ -168,7 +168,7 @@ * ]| */ -struct _GtkDialogPrivate +typedef struct { GtkWidget *vbox; GtkWidget *headerbar; @@ -178,7 +178,7 @@ struct _GtkDialogPrivate gint use_header_bar; gboolean constructed; -}; +} GtkDialogPrivate; typedef struct _ResponseData ResponseData; @@ -239,7 +239,7 @@ static void set_use_header_bar (GtkDialog *dialog, gint use_header_bar) { - GtkDialogPrivate *priv = dialog->priv; + GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog); if (use_header_bar == -1) return; @@ -251,7 +251,7 @@ set_use_header_bar (GtkDialog *dialog, void gtk_dialog_set_use_header_bar_from_setting (GtkDialog *dialog) { - GtkDialogPrivate *priv = dialog->priv; + GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog); g_assert (!priv->constructed); @@ -287,7 +287,7 @@ gtk_dialog_get_property (GObject *object, GParamSpec *pspec) { GtkDialog *dialog = GTK_DIALOG (object); - GtkDialogPrivate *priv = dialog->priv; + GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog); switch (prop_id) { @@ -349,7 +349,7 @@ apply_response_for_header_bar (GtkDialog *dialog, GtkWidget *child, gint response_id) { - GtkDialogPrivate *priv = dialog->priv; + GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog); GtkPackType pack; g_assert (gtk_widget_get_parent (child) == priv->headerbar); @@ -372,7 +372,7 @@ add_to_header_bar (GtkDialog *dialog, GtkWidget *child, gint response_id) { - GtkDialogPrivate *priv = dialog->priv; + GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog); gtk_widget_set_valign (child, GTK_ALIGN_CENTER); gtk_container_add (GTK_CONTAINER (priv->headerbar), child); @@ -386,7 +386,7 @@ apply_response_for_action_area (GtkDialog *dialog, GtkWidget *child, gint response_id) { - GtkDialogPrivate *priv = dialog->priv; + GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog); g_assert (gtk_widget_get_parent (child) == priv->action_area); @@ -399,7 +399,7 @@ add_to_action_area (GtkDialog *dialog, GtkWidget *child, gint response_id) { - GtkDialogPrivate *priv = dialog->priv; + GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog); gtk_widget_set_valign (child, GTK_ALIGN_BASELINE); gtk_container_add (GTK_CONTAINER (priv->action_area), child); @@ -409,7 +409,7 @@ add_to_action_area (GtkDialog *dialog, static void update_suggested_action (GtkDialog *dialog) { - GtkDialogPrivate *priv = dialog->priv; + GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog); if (priv->use_header_bar) { @@ -435,7 +435,7 @@ add_cb (GtkContainer *container, GtkWidget *widget, GtkDialog *dialog) { - GtkDialogPrivate *priv = dialog->priv; + GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog); if (priv->use_header_bar) g_warning ("Content added to the action area of a dialog using header bars"); @@ -447,7 +447,7 @@ static void gtk_dialog_constructed (GObject *object) { GtkDialog *dialog = GTK_DIALOG (object); - GtkDialogPrivate *priv = dialog->priv; + GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog); G_OBJECT_CLASS (gtk_dialog_parent_class)->constructed (object); @@ -498,8 +498,9 @@ static void gtk_dialog_finalize (GObject *obj) { GtkDialog *dialog = GTK_DIALOG (obj); + GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog); - g_object_unref (dialog->priv->size_group); + g_object_unref (priv->size_group); G_OBJECT_CLASS (gtk_dialog_parent_class)->finalize (obj); } @@ -602,10 +603,12 @@ gtk_dialog_class_init (GtkDialogClass *class) static void gtk_dialog_init (GtkDialog *dialog) { - dialog->priv = gtk_dialog_get_instance_private (dialog); + GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog); - dialog->priv->use_header_bar = -1; - dialog->priv->size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); + priv = gtk_dialog_get_instance_private (dialog); + + priv->use_header_bar = -1; + priv->size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); gtk_widget_init_template (GTK_WIDGET (dialog)); } @@ -633,7 +636,7 @@ gtk_dialog_close_request (GtkWindow *window) static GList * get_action_children (GtkDialog *dialog) { - GtkDialogPrivate *priv = dialog->priv; + GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog); GList *children; if (priv->constructed && priv->use_header_bar) @@ -870,7 +873,7 @@ gtk_dialog_add_action_widget (GtkDialog *dialog, GtkWidget *child, gint response_id) { - GtkDialogPrivate *priv = dialog->priv; + GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog); g_return_if_fail (GTK_IS_DIALOG (dialog)); g_return_if_fail (GTK_IS_WIDGET (child)); @@ -1031,6 +1034,7 @@ void gtk_dialog_set_default_response (GtkDialog *dialog, gint response_id) { + GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog); GList *children; GList *tmp_list; @@ -1052,7 +1056,7 @@ gtk_dialog_set_default_response (GtkDialog *dialog, g_list_free (children); - if (dialog->priv->use_header_bar) + if (priv->use_header_bar) update_suggested_action (dialog); } @@ -1478,7 +1482,7 @@ gtk_dialog_buildable_custom_finished (GtkBuildable *buildable, gpointer user_data) { GtkDialog *dialog = GTK_DIALOG (buildable); - GtkDialogPrivate *priv = dialog->priv; + GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog); GSList *l; SubParserData *data; GObject *object; @@ -1557,7 +1561,7 @@ gtk_dialog_buildable_add_child (GtkBuildable *buildable, const gchar *type) { GtkDialog *dialog = GTK_DIALOG (buildable); - GtkDialogPrivate *priv = dialog->priv; + GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog); if (type == NULL) parent_buildable_iface->add_child (buildable, builder, child, type); @@ -1575,9 +1579,11 @@ gtk_dialog_buildable_add_child (GtkBuildable *buildable, GtkWidget * gtk_dialog_get_action_area (GtkDialog *dialog) { + GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog); + g_return_val_if_fail (GTK_IS_DIALOG (dialog), NULL); - return dialog->priv->action_area; + return priv->action_area; } /** @@ -1593,9 +1599,11 @@ gtk_dialog_get_action_area (GtkDialog *dialog) GtkWidget * gtk_dialog_get_header_bar (GtkDialog *dialog) { + GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog); + g_return_val_if_fail (GTK_IS_DIALOG (dialog), NULL); - return dialog->priv->headerbar; + return priv->headerbar; } /** @@ -1609,7 +1617,9 @@ gtk_dialog_get_header_bar (GtkDialog *dialog) GtkWidget * gtk_dialog_get_content_area (GtkDialog *dialog) { + GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog); + g_return_val_if_fail (GTK_IS_DIALOG (dialog), NULL); - return dialog->priv->vbox; + return priv->vbox; } diff --git a/gtk/gtkdialog.h b/gtk/gtkdialog.h index 377a155f5f..408bc61a4e 100644 --- a/gtk/gtkdialog.h +++ b/gtk/gtkdialog.h @@ -40,7 +40,7 @@ G_BEGIN_DECLS * @GTK_DIALOG_DESTROY_WITH_PARENT: Destroy the dialog when its * parent is destroyed, see gtk_window_set_destroy_with_parent() * @GTK_DIALOG_USE_HEADER_BAR: Create dialog with actions in header - * bar instead of action area. Since 3.12. + * bar instead of action area * * Flags used to influence dialog construction. */ @@ -95,7 +95,6 @@ typedef enum typedef struct _GtkDialog GtkDialog; -typedef struct _GtkDialogPrivate GtkDialogPrivate; typedef struct _GtkDialogClass GtkDialogClass; /** @@ -106,10 +105,7 @@ typedef struct _GtkDialogClass GtkDialogClass; */ struct _GtkDialog { - GtkWindow window; - - /*< private >*/ - GtkDialogPrivate *priv; + GtkWindow parent_instance; }; /** diff --git a/gtk/gtkdnd.c b/gtk/gtkdnd.c index 349167f018..f00a213da7 100644 --- a/gtk/gtkdnd.c +++ b/gtk/gtkdnd.c @@ -67,7 +67,7 @@ struct _GtkDragSourceInfo { GtkWidget *widget; GdkContentFormats *target_list; /* Targets for drag data */ - GdkDragContext *context; /* drag context */ + GdkDrag *drag; /* drag context */ GtkWidget *icon_window; /* Window for drag */ GtkWidget *icon_widget; /* Widget for drag */ @@ -115,9 +115,9 @@ static void gtk_drag_dest_set_widget (GtkDragDestInfo *info, static GtkDragDestInfo * gtk_drag_get_dest_info (GdkDrop *drop, gboolean create); -static GtkDragSourceInfo *gtk_drag_get_source_info (GdkDragContext *context, +static GtkDragSourceInfo *gtk_drag_get_source_info (GdkDrag *drag, gboolean create); -static void gtk_drag_clear_source_info (GdkDragContext *context); +static void gtk_drag_clear_source_info (GdkDrag *drag); static void gtk_drag_drop (GtkDragSourceInfo *info); static void gtk_drag_drop_finished (GtkDragSourceInfo *info, @@ -128,20 +128,20 @@ static void gtk_drag_cancel_internal (GtkDragSourceInfo *info, static void gtk_drag_remove_icon (GtkDragSourceInfo *info); static void gtk_drag_source_info_destroy (GtkDragSourceInfo *info); -static void gtk_drag_context_drop_performed_cb (GdkDragContext *context, - GtkDragSourceInfo *info); -static void gtk_drag_context_cancel_cb (GdkDragContext *context, - GdkDragCancelReason reason, - GtkDragSourceInfo *info); -static void gtk_drag_context_dnd_finished_cb (GdkDragContext *context, - GtkDragSourceInfo *info); +static void gtk_drag_drop_performed_cb (GdkDrag *drag, + GtkDragSourceInfo *info); +static void gtk_drag_cancel_cb (GdkDrag *drag, + GdkDragCancelReason reason, + GtkDragSourceInfo *info); +static void gtk_drag_dnd_finished_cb (GdkDrag *drag, + GtkDragSourceInfo *info); static gboolean gtk_drag_abort_timeout (gpointer data); -static void set_icon_helper (GdkDragContext *context, - GtkImageDefinition*def, - gint hot_x, - gint hot_y); +static void set_icon_helper (GdkDrag *drag, + GtkImageDefinition *def, + gint hot_x, + gint hot_y); /******************** @@ -304,7 +304,7 @@ gtk_drag_get_data (GtkWidget *widget, /** * gtk_drag_get_source_widget: - * @context: a (destination side) drag context + * @drag: a drag context * * Determines the source widget for a drag. * @@ -313,13 +313,13 @@ gtk_drag_get_data (GtkWidget *widget, * Otherwise, %NULL. */ GtkWidget * -gtk_drag_get_source_widget (GdkDragContext *context) +gtk_drag_get_source_widget (GdkDrag *drag) { GtkDragSourceInfo *info; - g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), NULL); + g_return_val_if_fail (GDK_IS_DRAG (drag), NULL); - info = gtk_drag_get_source_info (context, FALSE); + info = gtk_drag_get_source_info (drag, FALSE); if (info == NULL) return NULL; @@ -594,28 +594,28 @@ gtk_drag_get_dest_info (GdkDrop *drop, static GQuark dest_info_quark = 0; static GtkDragSourceInfo * -gtk_drag_get_source_info (GdkDragContext *context, - gboolean create) +gtk_drag_get_source_info (GdkDrag *drag, + gboolean create) { GtkDragSourceInfo *info; if (!dest_info_quark) dest_info_quark = g_quark_from_static_string ("gtk-source-info"); - info = g_object_get_qdata (G_OBJECT (context), dest_info_quark); + info = g_object_get_qdata (G_OBJECT (drag), dest_info_quark); if (!info && create) { info = g_new0 (GtkDragSourceInfo, 1); - info->context = context; - g_object_set_qdata (G_OBJECT (context), dest_info_quark, info); + info->drag = drag; + g_object_set_qdata (G_OBJECT (drag), dest_info_quark, info); } return info; } static void -gtk_drag_clear_source_info (GdkDragContext *context) +gtk_drag_clear_source_info (GdkDrag *drag) { - g_object_set_qdata (G_OBJECT (context), dest_info_quark, NULL); + g_object_set_qdata (G_OBJECT (drag), dest_info_quark, NULL); } /* @@ -743,7 +743,7 @@ struct _GtkDragContent GdkContentProvider parent; GtkWidget *widget; - GdkDragContext *context; + GdkDrag *drag; GdkContentFormats *formats; guint32 time; }; @@ -809,7 +809,7 @@ gtk_drag_content_write_mime_type_async (GdkContentProvider *provider, sdata.display = gtk_widget_get_display (content->widget); g_signal_emit_by_name (content->widget, "drag-data-get", - content->context, + content->drag, &sdata); if (sdata.length == -1) @@ -873,7 +873,7 @@ gtk_drag_content_init (GtkDragContent *content) /* Like gtk_drag_begin(), but also takes a GtkImageDefinition * so that we can set the icon from the source site information */ -GdkDragContext * +GdkDrag * gtk_drag_begin_internal (GtkWidget *widget, GdkDevice *device, GtkImageDefinition *icon, @@ -884,7 +884,7 @@ gtk_drag_begin_internal (GtkWidget *widget, { GtkDragSourceInfo *info; GtkWidget *toplevel; - GdkDragContext *context; + GdkDrag *drag; int dx, dy; GtkDragContent *content; @@ -905,17 +905,17 @@ gtk_drag_begin_internal (GtkWidget *widget, content->widget = g_object_ref (widget); content->formats = gdk_content_formats_ref (target_list); - context = gdk_drag_begin (gtk_widget_get_surface (toplevel), device, GDK_CONTENT_PROVIDER (content), actions, dx, dy); - if (context == NULL) + drag = gdk_drag_begin (gtk_widget_get_surface (toplevel), device, GDK_CONTENT_PROVIDER (content), actions, dx, dy); + if (drag == NULL) { g_object_unref (content); return NULL; } - content->context = context; + content->drag = drag; g_object_unref (content); - info = gtk_drag_get_source_info (context, TRUE); + info = gtk_drag_get_source_info (drag, TRUE); g_object_set_data (G_OBJECT (widget), I_("gtk-info"), info); @@ -930,7 +930,7 @@ gtk_drag_begin_internal (GtkWidget *widget, gtk_widget_reset_controllers (widget); - g_signal_emit_by_name (widget, "drag-begin", info->context); + g_signal_emit_by_name (widget, "drag-begin", info->drag); /* Ensure that we have an icon before we start the drag; the * application may have set one in ::drag_begin, or it may @@ -940,24 +940,24 @@ gtk_drag_begin_internal (GtkWidget *widget, { if (icon) { - set_icon_helper (info->context, icon, 0, 0); + set_icon_helper (info->drag, icon, 0, 0); } else { icon = gtk_image_definition_new_icon_name ("text-x-generic"); - set_icon_helper (info->context, icon, 0, 0); + set_icon_helper (info->drag, icon, 0, 0); gtk_image_definition_unref (icon); } } - g_signal_connect (context, "drop-performed", - G_CALLBACK (gtk_drag_context_drop_performed_cb), info); - g_signal_connect (context, "dnd-finished", - G_CALLBACK (gtk_drag_context_dnd_finished_cb), info); - g_signal_connect (context, "cancel", - G_CALLBACK (gtk_drag_context_cancel_cb), info); + g_signal_connect (drag, "drop-performed", + G_CALLBACK (gtk_drag_drop_performed_cb), info); + g_signal_connect (drag, "dnd-finished", + G_CALLBACK (gtk_drag_dnd_finished_cb), info); + g_signal_connect (drag, "cancel", + G_CALLBACK (gtk_drag_cancel_cb), info); - return info->context; + return info->drag; } /** @@ -979,7 +979,7 @@ gtk_drag_begin_internal (GtkWidget *widget, * * Returns: (transfer none): the context for this drag */ -GdkDragContext * +GdkDrag * gtk_drag_begin_with_coordinates (GtkWidget *widget, GdkDevice *device, GdkContentFormats *targets, @@ -1016,7 +1016,7 @@ icon_widget_destroyed (GtkWidget *widget, } static void -gtk_drag_set_icon_widget_internal (GdkDragContext *context, +gtk_drag_set_icon_widget_internal (GdkDrag *drag, GtkWidget *widget, gint hot_x, gint hot_y, @@ -1026,7 +1026,7 @@ gtk_drag_set_icon_widget_internal (GdkDragContext *context, g_return_if_fail (!GTK_IS_WINDOW (widget)); - info = gtk_drag_get_source_info (context, FALSE); + info = gtk_drag_get_source_info (drag, FALSE); if (info == NULL) { if (destroy_on_release) @@ -1047,13 +1047,13 @@ gtk_drag_set_icon_widget_internal (GdkDragContext *context, g_signal_connect (widget, "destroy", G_CALLBACK (icon_widget_destroyed), info); - gdk_drag_context_set_hotspot (context, hot_x, hot_y); + gdk_drag_set_hotspot (drag, hot_x, hot_y); if (!info->icon_window) { GdkDisplay *display; - display = gdk_drag_context_get_display (context); + display = gdk_drag_get_display (drag); info->icon_window = gtk_window_new (GTK_WINDOW_POPUP); gtk_window_set_type_hint (GTK_WINDOW (info->icon_window), GDK_SURFACE_TYPE_HINT_DND); @@ -1062,7 +1062,7 @@ gtk_drag_set_icon_widget_internal (GdkDragContext *context, gtk_style_context_remove_class (gtk_widget_get_style_context (info->icon_window), "background"); gtk_window_set_hardcoded_surface (GTK_WINDOW (info->icon_window), - gdk_drag_context_get_drag_surface (context)); + gdk_drag_get_drag_surface (drag)); gtk_widget_show (info->icon_window); } @@ -1073,8 +1073,7 @@ gtk_drag_set_icon_widget_internal (GdkDragContext *context, /** * gtk_drag_set_icon_widget: - * @context: the context for a drag. (This must be called - with a context for the source side of a drag) + * @drag: the context for a drag * @widget: a widget to use as an icon * @hot_x: the X offset within @widget of the hotspot * @hot_y: the Y offset within @widget of the hotspot @@ -1085,19 +1084,19 @@ gtk_drag_set_icon_widget_internal (GdkDragContext *context, * signal and destroy it yourself. */ void -gtk_drag_set_icon_widget (GdkDragContext *context, +gtk_drag_set_icon_widget (GdkDrag *drag, GtkWidget *widget, gint hot_x, gint hot_y) { - g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); + g_return_if_fail (GDK_IS_DRAG (drag)); g_return_if_fail (GTK_IS_WIDGET (widget)); - gtk_drag_set_icon_widget_internal (context, widget, hot_x, hot_y, FALSE); + gtk_drag_set_icon_widget_internal (drag, widget, hot_x, hot_y, FALSE); } static void -set_icon_helper (GdkDragContext *context, +set_icon_helper (GdkDrag *drag, GtkImageDefinition *def, gint hot_x, gint hot_y) @@ -1107,25 +1106,24 @@ set_icon_helper (GdkDragContext *context, widget = gtk_image_new (); gtk_style_context_add_class (gtk_widget_get_style_context (widget), "drag-icon"); gtk_image_set_from_definition (GTK_IMAGE (widget), def); - gtk_drag_set_icon_widget_internal (context, widget, hot_x, hot_y, TRUE); + gtk_drag_set_icon_widget_internal (drag, widget, hot_x, hot_y, TRUE); } void -gtk_drag_set_icon_definition (GdkDragContext *context, +gtk_drag_set_icon_definition (GdkDrag *drag, GtkImageDefinition *def, gint hot_x, gint hot_y) { - g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); + g_return_if_fail (GDK_IS_DRAG (drag)); g_return_if_fail (def != NULL); - set_icon_helper (context, def, hot_x, hot_y); + set_icon_helper (drag, def, hot_x, hot_y); } /** * gtk_drag_set_icon_paintable: - * @context: the context for a drag (This must be called - * with a context for the source side of a drag) + * @drag: the context for a drag * @paintable: the #GdkPaintable to use as icon * @hot_x: the X offset of the hotspot within the icon * @hot_y: the Y offset of the hotspot within the icon @@ -1139,26 +1137,25 @@ gtk_drag_set_icon_definition (GdkDragContext *context, * mouse cursor. */ void -gtk_drag_set_icon_paintable (GdkDragContext *context, +gtk_drag_set_icon_paintable (GdkDrag *drag, GdkPaintable *paintable, int hot_x, int hot_y) { GtkWidget *widget; - g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); + g_return_if_fail (GDK_IS_DRAG (drag)); g_return_if_fail (GDK_IS_PAINTABLE (paintable)); widget = gtk_picture_new_for_paintable (paintable); gtk_picture_set_can_shrink (GTK_PICTURE (widget), FALSE); - gtk_drag_set_icon_widget_internal (context, widget, hot_x, hot_y, TRUE); + gtk_drag_set_icon_widget_internal (drag, widget, hot_x, hot_y, TRUE); } /** * gtk_drag_set_icon_name: - * @context: the context for a drag (This must be called - * with a context for the source side of a drag) + * @drag: the context for a drag * @icon_name: name of icon to use * @hot_x: the X offset of the hotspot within the icon * @hot_y: the Y offset of the hotspot within the icon @@ -1170,26 +1167,25 @@ gtk_drag_set_icon_paintable (GdkDragContext *context, * @hot_x and @hot_y have to be used with care. */ void -gtk_drag_set_icon_name (GdkDragContext *context, +gtk_drag_set_icon_name (GdkDrag *drag, const gchar *icon_name, gint hot_x, gint hot_y) { GtkImageDefinition *def; - g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); + g_return_if_fail (GDK_IS_DRAG (drag)); g_return_if_fail (icon_name != NULL && icon_name[0] != '\0'); def = gtk_image_definition_new_icon_name (icon_name); - set_icon_helper (context, def, hot_x, hot_y); + set_icon_helper (drag, def, hot_x, hot_y); gtk_image_definition_unref (def); } /** * gtk_drag_set_icon_gicon: - * @context: the context for a drag (This must be called - * with a context for the source side of a drag) + * @drag: the context for a drag * @icon: a #GIcon * @hot_x: the X offset of the hotspot within the icon * @hot_y: the Y offset of the hotspot within the icon @@ -1199,36 +1195,35 @@ gtk_drag_set_icon_name (GdkDragContext *context, * for more details about using icons in drag and drop. */ void -gtk_drag_set_icon_gicon (GdkDragContext *context, +gtk_drag_set_icon_gicon (GdkDrag *drag, GIcon *icon, gint hot_x, gint hot_y) { GtkImageDefinition *def; - g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); + g_return_if_fail (GDK_IS_DRAG (drag)); g_return_if_fail (icon != NULL); def = gtk_image_definition_new_gicon (icon); - set_icon_helper (context, def, hot_x, hot_y); + set_icon_helper (drag, def, hot_x, hot_y); gtk_image_definition_unref (def); } /** * gtk_drag_set_icon_default: - * @context: the context for a drag (This must be called - * with a context for the source side of a drag) + * @drag: the context for a drag * * Sets the icon for a particular drag to the default * icon. */ void -gtk_drag_set_icon_default (GdkDragContext *context) +gtk_drag_set_icon_default (GdkDrag *drag) { - g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); + g_return_if_fail (GDK_IS_DRAG (drag)); - gtk_drag_set_icon_name (context, "text-x-generic", -2, -2); + gtk_drag_set_icon_name (drag, "text-x-generic", -2, -2); } /* Clean up from the drag, and display snapback, if necessary. */ @@ -1242,9 +1237,9 @@ gtk_drag_drop_finished (GtkDragSourceInfo *info, if (!success) g_signal_emit_by_name (info->widget, "drag-failed", - info->context, result, &success); + info->drag, result, &success); - gdk_drag_drop_done (info->context, success); + gdk_drag_drop_done (info->drag, success); gtk_drag_source_info_destroy (info); } @@ -1296,17 +1291,11 @@ gtk_drag_source_info_free (GtkDragSourceInfo *info) static void gtk_drag_source_info_destroy (GtkDragSourceInfo *info) { - g_signal_handlers_disconnect_by_func (info->context, - gtk_drag_context_drop_performed_cb, - info); - g_signal_handlers_disconnect_by_func (info->context, - gtk_drag_context_dnd_finished_cb, - info); - g_signal_handlers_disconnect_by_func (info->context, - gtk_drag_context_cancel_cb, - info); - - g_signal_emit_by_name (info->widget, "drag-end", info->context); + g_signal_handlers_disconnect_by_func (info->drag, gtk_drag_drop_performed_cb, info); + g_signal_handlers_disconnect_by_func (info->drag, gtk_drag_dnd_finished_cb, info); + g_signal_handlers_disconnect_by_func (info->drag, gtk_drag_cancel_cb, info); + + g_signal_emit_by_name (info->widget, "drag-end", info->drag); g_object_set_data (G_OBJECT (info->widget), I_("gtk-info"), NULL); @@ -1318,10 +1307,10 @@ gtk_drag_source_info_destroy (GtkDragSourceInfo *info) g_source_remove (info->drop_timeout); /* keep the icon_window alive until the (possible) drag cancel animation is done */ - g_object_set_data_full (G_OBJECT (info->context), "former-gtk-source-info", info, (GDestroyNotify)gtk_drag_source_info_free); + g_object_set_data_full (G_OBJECT (info->drag), "former-gtk-source-info", info, (GDestroyNotify)gtk_drag_source_info_free); - gtk_drag_clear_source_info (info->context); - g_object_unref (info->context); + gtk_drag_clear_source_info (info->drag); + g_object_unref (info->drag); } /* Called on cancellation of a drag, either by the user @@ -1335,16 +1324,16 @@ gtk_drag_cancel_internal (GtkDragSourceInfo *info, } static void -gtk_drag_context_drop_performed_cb (GdkDragContext *context, - GtkDragSourceInfo *info) +gtk_drag_drop_performed_cb (GdkDrag *drag, + GtkDragSourceInfo *info) { gtk_drag_drop (info); } static void -gtk_drag_context_cancel_cb (GdkDragContext *context, - GdkDragCancelReason reason, - GtkDragSourceInfo *info) +gtk_drag_cancel_cb (GdkDrag *drag, + GdkDragCancelReason reason, + GtkDragSourceInfo *info) { GtkDragResult result; @@ -1365,14 +1354,14 @@ gtk_drag_context_cancel_cb (GdkDragContext *context, } static void -gtk_drag_context_dnd_finished_cb (GdkDragContext *context, - GtkDragSourceInfo *info) +gtk_drag_dnd_finished_cb (GdkDrag *drag, + GtkDragSourceInfo *info) { - if (gdk_drag_context_get_selected_action (context) == GDK_ACTION_MOVE) + if (gdk_drag_get_selected_action (drag) == GDK_ACTION_MOVE) { g_signal_emit_by_name (info->widget, "drag-data-delete", - context); + drag); } gtk_drag_source_info_destroy (info); @@ -1422,7 +1411,7 @@ gtk_drag_check_threshold (GtkWidget *widget, /** * gtk_drag_cancel: - * @context: a #GdkDragContext, as e.g. returned by gtk_drag_begin_with_coordinates() + * @drag: a drag context, as e.g. returned by gtk_drag_begin_with_coordinates() * * Cancels an ongoing drag operation on the source side. * @@ -1438,13 +1427,13 @@ gtk_drag_check_threshold (GtkWidget *widget, * #GtkWidget::drag-failed is set to @GTK_DRAG_RESULT_ERROR. */ void -gtk_drag_cancel (GdkDragContext *context) +gtk_drag_cancel (GdkDrag *drag) { GtkDragSourceInfo *info; - g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); + g_return_if_fail (GDK_IS_DRAG (drag)); - info = gtk_drag_get_source_info (context, FALSE); + info = gtk_drag_get_source_info (drag, FALSE); if (info != NULL) gtk_drag_cancel_internal (info, GTK_DRAG_RESULT_ERROR); } diff --git a/gtk/gtkdnd.h b/gtk/gtkdnd.h index 2626ce02fb..2db8978c24 100644 --- a/gtk/gtkdnd.h +++ b/gtk/gtkdnd.h @@ -45,7 +45,7 @@ void gtk_drag_get_data (GtkWidget *widget, GdkAtom target); GDK_AVAILABLE_IN_ALL -GtkWidget *gtk_drag_get_source_widget (GdkDragContext *context); +GtkWidget *gtk_drag_get_source_widget (GdkDrag *drag); GDK_AVAILABLE_IN_ALL void gtk_drag_highlight (GtkWidget *widget); @@ -55,39 +55,39 @@ void gtk_drag_unhighlight (GtkWidget *widget); /* Source side */ GDK_AVAILABLE_IN_ALL -GdkDragContext *gtk_drag_begin_with_coordinates (GtkWidget *widget, - GdkDevice *device, - GdkContentFormats *targets, - GdkDragAction actions, - gint x, - gint y); +GdkDrag *gtk_drag_begin_with_coordinates (GtkWidget *widget, + GdkDevice *device, + GdkContentFormats *targets, + GdkDragAction actions, + gint x, + gint y); GDK_AVAILABLE_IN_ALL -void gtk_drag_cancel (GdkDragContext *context); +void gtk_drag_cancel (GdkDrag *drag); GDK_AVAILABLE_IN_ALL -void gtk_drag_set_icon_widget (GdkDragContext *context, +void gtk_drag_set_icon_widget (GdkDrag *drag, GtkWidget *widget, gint hot_x, gint hot_y); GDK_AVAILABLE_IN_ALL -void gtk_drag_set_icon_paintable (GdkDragContext *context, +void gtk_drag_set_icon_paintable (GdkDrag *drag, GdkPaintable *paintable, int hot_x, int hot_y); GDK_AVAILABLE_IN_ALL -void gtk_drag_set_icon_name (GdkDragContext *context, +void gtk_drag_set_icon_name (GdkDrag *drag, const gchar *icon_name, gint hot_x, gint hot_y); GDK_AVAILABLE_IN_ALL -void gtk_drag_set_icon_gicon (GdkDragContext *context, +void gtk_drag_set_icon_gicon (GdkDrag *drag, GIcon *icon, gint hot_x, gint hot_y); GDK_AVAILABLE_IN_ALL -void gtk_drag_set_icon_default (GdkDragContext *context); +void gtk_drag_set_icon_default (GdkDrag *drag); GDK_AVAILABLE_IN_ALL gboolean gtk_drag_check_threshold (GtkWidget *widget, diff --git a/gtk/gtkdndprivate.h b/gtk/gtkdndprivate.h index 854316ce5d..45448a17e2 100644 --- a/gtk/gtkdndprivate.h +++ b/gtk/gtkdndprivate.h @@ -40,14 +40,14 @@ struct _GtkDragDestSite G_BEGIN_DECLS -GdkDragContext * gtk_drag_begin_internal (GtkWidget *widget, +GdkDrag * gtk_drag_begin_internal (GtkWidget *widget, GdkDevice *device, GtkImageDefinition *icon, GdkContentFormats *target_list, GdkDragAction actions, int x, int y); -void gtk_drag_set_icon_definition (GdkDragContext *context, +void gtk_drag_set_icon_definition (GdkDrag *drag, GtkImageDefinition *def, gint hot_x, gint hot_y); diff --git a/gtk/gtkdragdest.c b/gtk/gtkdragdest.c index d1dccd2100..ce6040ad2b 100644 --- a/gtk/gtkdragdest.c +++ b/gtk/gtkdragdest.c @@ -125,7 +125,7 @@ gtk_drag_dest_set_internal (GtkWidget *widget, * |[<!-- language="C" --> * static void * drag_motion (GtkWidget *widget, - * GdkDragContext *context, + * GdkDrag *drag, * gint x, * gint y, * guint time) diff --git a/gtk/gtkemojicompletion.c b/gtk/gtkemojicompletion.c index 62e2b5774f..e7583126d9 100644 --- a/gtk/gtkemojicompletion.c +++ b/gtk/gtkemojicompletion.c @@ -300,20 +300,15 @@ move_active_variation (GtkEmojiCompletion *completion, } static gboolean -entry_key_press (GtkEntry *entry, - GdkEvent *event, - GtkEmojiCompletion *completion) +entry_key_press (GtkEventControllerKey *key, + guint keyval, + guint keycode, + GdkModifierType modifiers, + GtkEmojiCompletion *completion) { - guint keyval; - - if (gdk_event_get_event_type (event) != GDK_KEY_PRESS) - return FALSE; - if (!gtk_widget_get_visible (GTK_WIDGET (completion))) return FALSE; - gdk_event_get_keyval ((GdkEvent*)event, &keyval); - if (keyval == GDK_KEY_Escape) { gtk_popover_popdown (GTK_POPOVER (completion)); @@ -386,21 +381,28 @@ static void connect_signals (GtkEmojiCompletion *completion, GtkEntry *entry) { - completion->entry = entry; + GtkEventController *key_controller; + + completion->entry = g_object_ref (entry); + key_controller = gtk_entry_get_key_controller (entry); completion->changed_id = g_signal_connect (entry, "changed", G_CALLBACK (entry_changed), completion); - g_signal_connect (entry, "event", G_CALLBACK (entry_key_press), completion); + g_signal_connect (key_controller, "key-pressed", G_CALLBACK (entry_key_press), completion); g_signal_connect (entry, "notify::has-focus", G_CALLBACK (entry_focus_out), completion); } static void disconnect_signals (GtkEmojiCompletion *completion) { + GtkEventController *key_controller; + + key_controller = gtk_entry_get_key_controller (completion->entry); + g_signal_handlers_disconnect_by_func (completion->entry, entry_changed, completion); - g_signal_handlers_disconnect_by_func (completion->entry, entry_key_press, completion); + g_signal_handlers_disconnect_by_func (key_controller, entry_key_press, completion); g_signal_handlers_disconnect_by_func (completion->entry, entry_focus_out, completion); - completion->entry = NULL; + g_clear_object (&completion->entry); } static gboolean diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index 75de722cbb..8ad735129e 100644 --- a/gtk/gtkentry.c +++ b/gtk/gtkentry.c @@ -99,12 +99,12 @@ * In this mode, entered text is displayed using a “invisible” character. * By default, GTK+ picks the best invisible character that is available * in the current font, but it can be changed with - * gtk_entry_set_invisible_char(). Since 2.16, GTK+ displays a warning + * gtk_entry_set_invisible_char(). GTK+ displays a warning * when Caps Lock or input methods might interfere with entering text in * a password entry. The warning can be turned off with the * #GtkEntry:caps-lock-warning property. * - * Since 2.16, GtkEntry has the ability to display progress or activity + * GtkEntry has the ability to display progress or activity * information behind the text. To make an entry display such information, * use gtk_entry_set_progress_fraction() or gtk_entry_set_progress_pulse_step(). * @@ -284,12 +284,9 @@ struct _EntryIconInfo gchar *tooltip; guint nonactivatable : 1; guint in_drag : 1; - guint pressed : 1; GdkDragAction actions; GdkContentFormats *target_list; - GdkEventSequence *current_sequence; - GdkDevice *device; }; struct _GtkEntryPasswordHint @@ -418,8 +415,6 @@ static void gtk_entry_size_allocate (GtkWidget *widget, int baseline); static void gtk_entry_snapshot (GtkWidget *widget, GtkSnapshot *snapshot); -static gboolean gtk_entry_event (GtkWidget *widget, - GdkEvent *event); static void gtk_entry_focus_in (GtkWidget *widget); static void gtk_entry_focus_out (GtkWidget *widget); static void gtk_entry_grab_focus (GtkWidget *widget); @@ -450,14 +445,14 @@ static void gtk_entry_drag_data_received (GtkWidget *widget, GdkDrop *drop, GtkSelectionData *selection_data); static void gtk_entry_drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data); static void gtk_entry_drag_data_delete (GtkWidget *widget, - GdkDragContext *context); + GdkDrag *drag); static void gtk_entry_drag_begin (GtkWidget *widget, - GdkDragContext *context); + GdkDrag *drag); static void gtk_entry_drag_end (GtkWidget *widget, - GdkDragContext *context); + GdkDrag *drag); /* GtkEditable method implementations @@ -594,8 +589,6 @@ static void gtk_entry_do_popup (GtkEntry *entry, const GdkEvent *event); static gboolean gtk_entry_mnemonic_activate (GtkWidget *widget, gboolean group_cycling); -static void gtk_entry_grab_notify (GtkWidget *widget, - gboolean was_grabbed); static void gtk_entry_check_cursor_blink (GtkEntry *entry); static void gtk_entry_pend_cursor_blink (GtkEntry *entry); static void gtk_entry_reset_blink_time (GtkEntry *entry); @@ -790,7 +783,6 @@ gtk_entry_class_init (GtkEntryClass *class) widget_class->measure = gtk_entry_measure; widget_class->size_allocate = gtk_entry_size_allocate; widget_class->snapshot = gtk_entry_snapshot; - widget_class->event = gtk_entry_event; widget_class->grab_focus = gtk_entry_grab_focus; widget_class->style_updated = gtk_entry_style_updated; widget_class->query_tooltip = gtk_entry_query_tooltip; @@ -800,7 +792,6 @@ gtk_entry_class_init (GtkEntryClass *class) widget_class->state_flags_changed = gtk_entry_state_flags_changed; widget_class->display_changed = gtk_entry_display_changed; widget_class->mnemonic_activate = gtk_entry_mnemonic_activate; - widget_class->grab_notify = gtk_entry_grab_notify; widget_class->drag_drop = gtk_entry_drag_drop; widget_class->drag_motion = gtk_entry_drag_motion; @@ -1651,7 +1642,6 @@ gtk_entry_class_init (GtkEntryClass *class) * GtkEntry::icon-press: * @entry: The entry on which the signal is emitted * @icon_pos: The position of the clicked icon - * @event: (type Gdk.EventButton): the button press event * * The ::icon-press signal is emitted when an activatable icon * is clicked. @@ -1662,16 +1652,14 @@ gtk_entry_class_init (GtkEntryClass *class) G_SIGNAL_RUN_LAST, 0, NULL, NULL, - _gtk_marshal_VOID__ENUM_OBJECT, - G_TYPE_NONE, 2, - GTK_TYPE_ENTRY_ICON_POSITION, - GDK_TYPE_EVENT); - + g_cclosure_marshal_VOID__ENUM, + G_TYPE_NONE, 1, + GTK_TYPE_ENTRY_ICON_POSITION); + /** * GtkEntry::icon-release: * @entry: The entry on which the signal is emitted * @icon_pos: The position of the clicked icon - * @event: (type Gdk.EventButton): the button release event * * The ::icon-release signal is emitted on the button release from a * mouse click over an activatable icon. @@ -1682,10 +1670,9 @@ gtk_entry_class_init (GtkEntryClass *class) G_SIGNAL_RUN_LAST, 0, NULL, NULL, - _gtk_marshal_VOID__ENUM_OBJECT, - G_TYPE_NONE, 2, - GTK_TYPE_ENTRY_ICON_POSITION, - GDK_TYPE_EVENT); + g_cclosure_marshal_VOID__ENUM, + G_TYPE_NONE, 1, + GTK_TYPE_ENTRY_ICON_POSITION); /** * GtkEntry::preedit-changed: @@ -2965,6 +2952,91 @@ update_node_ordering (GtkEntry *entry) gtk_css_node_insert_before (parent, gtk_widget_get_css_node (icon_info->widget), NULL); } +static GtkEntryIconPosition +get_icon_position_from_controller (GtkEntry *entry, + GtkEventController *controller) +{ + GtkEntryPrivate *priv = gtk_entry_get_instance_private (entry); + GtkWidget *widget = gtk_event_controller_get_widget (controller); + + if (priv->icons[GTK_ENTRY_ICON_PRIMARY] && + priv->icons[GTK_ENTRY_ICON_PRIMARY]->widget == widget) + return GTK_ENTRY_ICON_PRIMARY; + else if (priv->icons[GTK_ENTRY_ICON_SECONDARY] && + priv->icons[GTK_ENTRY_ICON_SECONDARY]->widget == widget) + return GTK_ENTRY_ICON_SECONDARY; + + g_assert_not_reached (); + return -1; +} + +static void +icon_pressed_cb (GtkGestureMultiPress *gesture, + gint n_press, + gdouble x, + gdouble y, + GtkEntry *entry) +{ + GtkEntryPrivate *priv = gtk_entry_get_instance_private (entry); + GtkEntryIconPosition pos; + EntryIconInfo *icon_info; + + pos = get_icon_position_from_controller (entry, GTK_EVENT_CONTROLLER (gesture)); + icon_info = priv->icons[pos]; + + if (!icon_info->nonactivatable) + g_signal_emit (entry, signals[ICON_PRESS], 0, pos); + + gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED); +} + +static void +icon_released_cb (GtkGestureMultiPress *gesture, + gint n_press, + gdouble x, + gdouble y, + GtkEntry *entry) +{ + GtkEntryPrivate *priv = gtk_entry_get_instance_private (entry); + GtkEntryIconPosition pos; + EntryIconInfo *icon_info; + + pos = get_icon_position_from_controller (entry, GTK_EVENT_CONTROLLER (gesture)); + icon_info = priv->icons[pos]; + + if (!icon_info->nonactivatable) + g_signal_emit (entry, signals[ICON_RELEASE], 0, pos); +} + +static void +icon_drag_update_cb (GtkGestureDrag *gesture, + gdouble x, + gdouble y, + GtkEntry *entry) +{ + GtkEntryPrivate *priv = gtk_entry_get_instance_private (entry); + gdouble start_x, start_y; + GtkEntryIconPosition pos; + EntryIconInfo *icon_info; + + gtk_gesture_drag_get_start_point (gesture, &start_x, &start_y); + pos = get_icon_position_from_controller (entry, GTK_EVENT_CONTROLLER (gesture)); + icon_info = priv->icons[pos]; + + if (icon_info->target_list != NULL && + gtk_drag_check_threshold (icon_info->widget, + start_x, start_y, + x, y)) + { + icon_info->in_drag = TRUE; + gtk_drag_begin_with_coordinates (GTK_WIDGET (entry), + gtk_gesture_get_device (GTK_GESTURE (gesture)), + icon_info->target_list, + icon_info->actions, + start_x, start_y); + } +} + static EntryIconInfo* construct_icon_info (GtkWidget *widget, GtkEntryIconPosition icon_pos) @@ -2972,6 +3044,7 @@ construct_icon_info (GtkWidget *widget, GtkEntry *entry = GTK_ENTRY (widget); GtkEntryPrivate *priv = gtk_entry_get_instance_private (entry); EntryIconInfo *icon_info; + GtkGesture *drag, *press; g_return_val_if_fail (priv->icons[icon_pos] == NULL, NULL); @@ -2985,6 +3058,20 @@ construct_icon_info (GtkWidget *widget, update_icon_style (widget, icon_pos); update_node_ordering (entry); + press = gtk_gesture_multi_press_new (); + g_signal_connect (press, "pressed", + G_CALLBACK (icon_pressed_cb), entry); + g_signal_connect (press, "released", + G_CALLBACK (icon_released_cb), entry); + gtk_widget_add_controller (icon_info->widget, GTK_EVENT_CONTROLLER (press)); + + drag = gtk_gesture_drag_new (); + g_signal_connect (drag, "drag-update", + G_CALLBACK (icon_drag_update_cb), entry); + gtk_widget_add_controller (icon_info->widget, GTK_EVENT_CONTROLLER (drag)); + + gtk_gesture_group (press, drag); + return icon_info; } @@ -3511,108 +3598,6 @@ gtk_entry_update_handles (GtkEntry *entry, cursor, 0, text_allocation.height); } -static gboolean -gtk_entry_event (GtkWidget *widget, - GdkEvent *event) -{ - GtkEntryPrivate *priv = gtk_entry_get_instance_private (GTK_ENTRY (widget)); - EntryIconInfo *icon_info = NULL; - GdkEventSequence *sequence; - GdkDevice *device; - gdouble x, y; - gint i = 0; - - if (!gdk_event_get_coords (event, &x, &y)) - return GDK_EVENT_PROPAGATE; - - for (i = 0; i < MAX_ICONS; i++) - { - if (priv->icons[i]) - { - int icon_x, icon_y; - gtk_widget_translate_coordinates (widget, priv->icons[i]->widget, - x, y, &icon_x, &icon_y); - if (gtk_widget_contains (priv->icons[i]->widget, icon_x, icon_y)) - { - icon_info = priv->icons[i]; - break; - } - } - } - - if (!icon_info) - return GDK_EVENT_PROPAGATE; - - if (!gtk_widget_get_sensitive (icon_info->widget)) - return GDK_EVENT_STOP; - - sequence = gdk_event_get_event_sequence (event); - device = gdk_event_get_device (event); - - switch ((guint) gdk_event_get_event_type (event)) - { - case GDK_TOUCH_BEGIN: - if (icon_info->current_sequence) - break; - - icon_info->current_sequence = sequence; - /* Fall through */ - case GDK_BUTTON_PRESS: - priv->start_x = x; - priv->start_y = y; - icon_info->pressed = TRUE; - icon_info->device = device; - - if (!icon_info->nonactivatable) { - g_signal_emit (widget, signals[ICON_PRESS], 0, i, event); - } - - break; - case GDK_TOUCH_UPDATE: - if (icon_info->device != device || - icon_info->current_sequence != sequence) - break; - /* Fall through */ - case GDK_MOTION_NOTIFY: - if (icon_info->pressed && - icon_info->target_list != NULL && - gtk_drag_check_threshold (widget, - priv->start_x, - priv->start_y, - x, y)) - { - icon_info->in_drag = TRUE; - gtk_drag_begin_with_coordinates (widget, - device, - icon_info->target_list, - icon_info->actions, - priv->start_x, - priv->start_y); - } - - break; - case GDK_TOUCH_END: - if (icon_info->device != device || - icon_info->current_sequence != sequence) - break; - - icon_info->current_sequence = NULL; - /* Fall through */ - case GDK_BUTTON_RELEASE: - icon_info->pressed = FALSE; - icon_info->device = NULL; - - if (!icon_info->nonactivatable) - g_signal_emit (widget, signals[ICON_RELEASE], 0, i, event); - - break; - default: - return GDK_EVENT_PROPAGATE; - } - - return GDK_EVENT_STOP; -} - static void gesture_get_current_point_in_layout (GtkGestureSingle *gesture, GtkEntry *entry, @@ -7683,8 +7668,6 @@ gtk_entry_set_icon_sensitive (GtkEntry *entry, { gtk_widget_set_sensitive (icon_info->widget, sensitive); - icon_info->pressed = FALSE; - g_object_notify_by_pspec (G_OBJECT (entry), entry_props[icon_pos == GTK_ENTRY_ICON_PRIMARY ? PROP_SENSITIVE_PRIMARY @@ -8169,35 +8152,6 @@ gtk_entry_mnemonic_activate (GtkWidget *widget, } static void -check_undo_icon_grab (GtkEntry *entry, - EntryIconInfo *info) -{ - if (!info->device || - !gtk_widget_device_is_shadowed (GTK_WIDGET (entry), info->device)) - return; - - info->pressed = FALSE; - info->current_sequence = NULL; - info->device = NULL; -} - -static void -gtk_entry_grab_notify (GtkWidget *widget, - gboolean was_grabbed) -{ - GtkEntryPrivate *priv = gtk_entry_get_instance_private (GTK_ENTRY (widget)); - gint i; - - GTK_WIDGET_CLASS (gtk_entry_parent_class)->grab_notify (widget, was_grabbed); - - for (i = 0; i < MAX_ICONS; i++) - { - if (priv->icons[i]) - check_undo_icon_grab (GTK_ENTRY (widget), priv->icons[i]); - } -} - -static void append_action_signal (GtkEntry *entry, GtkWidget *menu, const gchar *label, @@ -8524,7 +8478,7 @@ gtk_entry_selection_bubble_popup_set (GtkEntry *entry) static void gtk_entry_drag_begin (GtkWidget *widget, - GdkDragContext *context) + GdkDrag *drag) { GtkEntry *entry = GTK_ENTRY (widget); GtkEntryPrivate *priv = gtk_entry_get_instance_private (entry); @@ -8539,7 +8493,7 @@ gtk_entry_drag_begin (GtkWidget *widget, { if (icon_info->in_drag) { - gtk_drag_set_icon_definition (context, + gtk_drag_set_icon_definition (drag, gtk_image_get_definition (GTK_IMAGE (icon_info->widget)), -2, -2); return; @@ -8557,7 +8511,7 @@ gtk_entry_drag_begin (GtkWidget *widget, paintable = gtk_text_util_create_drag_icon (widget, text, -1); gtk_entry_get_pixel_ranges (entry, &ranges, &n_ranges); - gtk_drag_set_icon_paintable (context, + gtk_drag_set_icon_paintable (drag, paintable, priv->drag_start_x - ranges[0], priv->drag_start_y); @@ -8570,7 +8524,7 @@ gtk_entry_drag_begin (GtkWidget *widget, static void gtk_entry_drag_end (GtkWidget *widget, - GdkDragContext *context) + GdkDrag *drag) { GtkEntry *entry = GTK_ENTRY (widget); GtkEntryPrivate *priv = gtk_entry_get_instance_private (entry); @@ -8678,7 +8632,7 @@ gtk_entry_get_action (GtkEntry *entry, GdkDrop *drop) { GtkWidget *widget = GTK_WIDGET (entry); - GdkDragContext *drag = gdk_drop_get_drag (drop); + GdkDrag *drag = gdk_drop_get_drag (drop); GtkWidget *source_widget = gtk_drag_get_source_widget (drag); GdkDragAction actions; @@ -8746,7 +8700,7 @@ gtk_entry_drag_data_received (GtkWidget *widget, static void gtk_entry_drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data) { GtkEntry *entry = GTK_ENTRY (widget); @@ -8780,7 +8734,7 @@ gtk_entry_drag_data_get (GtkWidget *widget, static void gtk_entry_drag_data_delete (GtkWidget *widget, - GdkDragContext *context) + GdkDrag *drag) { GtkEntry *entry = GTK_ENTRY (widget); GtkEntryPrivate *priv = gtk_entry_get_instance_private (entry); @@ -9626,3 +9580,11 @@ set_enable_emoji_completion (GtkEntry *entry, g_object_notify_by_pspec (G_OBJECT (entry), entry_props[PROP_ENABLE_EMOJI_COMPLETION]); } + +GtkEventController * +gtk_entry_get_key_controller (GtkEntry *entry) +{ + GtkEntryPrivate *priv = gtk_entry_get_instance_private (entry); + + return priv->key_controller; +} diff --git a/gtk/gtkentrycompletion.c b/gtk/gtkentrycompletion.c index a47d3cdaa6..af90772162 100644 --- a/gtk/gtkentrycompletion.c +++ b/gtk/gtkentrycompletion.c @@ -83,6 +83,8 @@ #include "gtkentry.h" #include "gtkmain.h" #include "gtkmarshalers.h" +#include "gtkgesturemultipress.h" +#include "gtkeventcontrollerkey.h" #include "gtkprivate.h" #include "gtkwindowprivate.h" @@ -139,9 +141,6 @@ static void gtk_entry_completion_dispose (GObject *object); static gboolean gtk_entry_completion_visible_func (GtkTreeModel *model, GtkTreeIter *iter, gpointer data); -static gboolean gtk_entry_completion_popup_event (GtkWidget *widget, - GdkEvent *event, - gpointer user_data); static void gtk_entry_completion_list_activated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *column, @@ -489,6 +488,18 @@ gtk_entry_completion_init (GtkEntryCompletion *completion) priv->filter_model = NULL; } +static gboolean +propagate_to_entry (GtkEventControllerKey *key, + guint keyval, + guint keycode, + GdkModifierType modifiers, + GtkEntryCompletion *completion) +{ + GtkEntryCompletionPrivate *priv = completion->priv; + + return gtk_event_controller_key_forward (key, priv->entry); +} + static void gtk_entry_completion_constructed (GObject *object) { @@ -497,6 +508,7 @@ gtk_entry_completion_constructed (GObject *object) GtkCellRenderer *cell; GtkTreeSelection *sel; GtkWidget *popup_frame; + GtkEventController *controller; G_OBJECT_CLASS (gtk_entry_completion_parent_class)->constructed (object); @@ -570,9 +582,18 @@ gtk_entry_completion_constructed (GObject *object) gtk_window_set_type_hint (GTK_WINDOW(priv->popup_window), GDK_SURFACE_TYPE_HINT_COMBO); - g_signal_connect (priv->popup_window, "event", - G_CALLBACK (gtk_entry_completion_popup_event), - completion); + controller = gtk_event_controller_key_new (); + g_signal_connect (controller, "key-pressed", + G_CALLBACK (propagate_to_entry), completion); + g_signal_connect (controller, "key-released", + G_CALLBACK (propagate_to_entry), completion); + gtk_widget_add_controller (priv->popup_window, controller); + + controller = GTK_EVENT_CONTROLLER (gtk_gesture_multi_press_new ()); + g_signal_connect_swapped (controller, "released", + G_CALLBACK (_gtk_entry_completion_popdown), + completion); + gtk_widget_add_controller (priv->popup_window, controller); popup_frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (popup_frame), @@ -864,37 +885,6 @@ gtk_entry_completion_visible_func (GtkTreeModel *model, return ret; } -static gboolean -gtk_entry_completion_popup_event (GtkWidget *widget, - GdkEvent *event, - gpointer user_data) -{ - GtkEntryCompletion *completion = GTK_ENTRY_COMPLETION (user_data); - - if (gdk_event_get_event_type (event) == GDK_KEY_PRESS || - gdk_event_get_event_type (event) == GDK_KEY_RELEASE) - { - if (!gtk_widget_get_mapped (completion->priv->popup_window)) - return GDK_EVENT_PROPAGATE; - - /* propagate event to the entry */ - gtk_widget_event (completion->priv->entry, (GdkEvent *)event); - - return GDK_EVENT_STOP; - } - - if (gdk_event_get_event_type (event) != GDK_BUTTON_PRESS) - return GDK_EVENT_PROPAGATE; - - if (!gtk_widget_get_mapped (completion->priv->popup_window)) - return GDK_EVENT_PROPAGATE; - - /* if we come here, it's usually time to popdown */ - _gtk_entry_completion_popdown (completion); - - return GDK_EVENT_STOP; -} - static void gtk_entry_completion_list_activated (GtkTreeView *treeview, GtkTreePath *path, @@ -2455,27 +2445,18 @@ completion_insert_text_callback (GtkEntry *entry, } } -static gboolean -maybe_accept_completion (GtkEntry *entry, - GdkEvent *event) -{ - gboolean focus_in; - - if (gdk_event_get_event_type (event) == GDK_FOCUS_CHANGE && - gdk_event_get_focus_in (event, &focus_in) && !focus_in) - accept_completion_callback (entry); - - return GDK_EVENT_PROPAGATE; -} - static void connect_completion_signals (GtkEntryCompletion *completion) { + GtkEntryCompletionPrivate *priv = completion->priv; GtkEventController *controller; - controller = gtk_event_controller_key_new (); + controller = priv->entry_key_controller = gtk_event_controller_key_new (); g_signal_connect (controller, "key-pressed", G_CALLBACK (gtk_entry_completion_key_pressed), completion); + g_signal_connect_swapped (controller, "focus-out", + G_CALLBACK (accept_completion_callback), + completion->priv->entry); gtk_widget_add_controller (completion->priv->entry, controller); completion->priv->changed_id = @@ -2489,8 +2470,6 @@ connect_completion_signals (GtkEntryCompletion *completion) G_CALLBACK (clear_completion_callback), completion); g_signal_connect (completion->priv->entry, "activate", G_CALLBACK (accept_completion_callback), completion); - g_signal_connect (completion->priv->entry, "event", - G_CALLBACK (maybe_accept_completion), completion); } static void @@ -2526,6 +2505,9 @@ unset_accessible_relation (GtkWidget *window, static void disconnect_completion_signals (GtkEntryCompletion *completion) { + gtk_widget_remove_controller (completion->priv->entry, + completion->priv->entry_key_controller); + if (completion->priv->changed_id > 0 && g_signal_handler_is_connected (completion->priv->entry, completion->priv->changed_id)) @@ -2548,8 +2530,6 @@ disconnect_completion_signals (GtkEntryCompletion *completion) G_CALLBACK (clear_completion_callback), completion); g_signal_handlers_disconnect_by_func (completion->priv->entry, G_CALLBACK (accept_completion_callback), completion); - g_signal_handlers_disconnect_by_func (completion->priv->entry, - G_CALLBACK (maybe_accept_completion), completion); } void diff --git a/gtk/gtkentryprivate.h b/gtk/gtkentryprivate.h index 527bbf8bff..96aef386ea 100644 --- a/gtk/gtkentryprivate.h +++ b/gtk/gtkentryprivate.h @@ -97,6 +97,7 @@ void gtk_entry_set_positions (GtkEntry *entry, int current_pos, int selection_bound); +GtkEventController * gtk_entry_get_key_controller (GtkEntry *entry); G_END_DECLS diff --git a/gtk/gtkenums.h b/gtk/gtkenums.h index 2fd2739998..57ac101e5f 100644 --- a/gtk/gtkenums.h +++ b/gtk/gtkenums.h @@ -51,7 +51,7 @@ G_BEGIN_DECLS * or top * @GTK_ALIGN_CENTER: center natural width of widget inside the * allocation - * @GTK_ALIGN_BASELINE: align the widget according to the baseline. Since 3.10. + * @GTK_ALIGN_BASELINE: align the widget according to the baseline * * Controls how a widget deals with extra space in a single (x or y) * dimension. @@ -85,7 +85,7 @@ typedef enum * @GTK_ARROW_DOWN: Represents a downward pointing arrow. * @GTK_ARROW_LEFT: Represents a left pointing arrow. * @GTK_ARROW_RIGHT: Represents a right pointing arrow. - * @GTK_ARROW_NONE: No arrow. Since 2.10. + * @GTK_ARROW_NONE: No arrow. * * Used to indicate the direction in which an arrow should point. */ @@ -912,9 +912,9 @@ typedef enum * first word of each sentence * @GTK_INPUT_HINT_INHIBIT_OSK: Suggest to not show an onscreen keyboard * (e.g for a calculator that already has all the keys). - * @GTK_INPUT_HINT_VERTICAL_WRITING: The text is vertical. Since 3.18 - * @GTK_INPUT_HINT_EMOJI: Suggest offering Emoji support. Since 3.22.20 - * @GTK_INPUT_HINT_NO_EMOJI: Suggest not offering Emoji support. Since 3.22.20 + * @GTK_INPUT_HINT_VERTICAL_WRITING: The text is vertical + * @GTK_INPUT_HINT_EMOJI: Suggest offering Emoji support + * @GTK_INPUT_HINT_NO_EMOJI: Suggest not offering Emoji support * * Describes hints that might be taken into account by input methods * or applications. Note that input methods may already tailor their diff --git a/gtk/gtkeventcontrollerkey.c b/gtk/gtkeventcontrollerkey.c index a998a0af89..394acbb6dd 100644 --- a/gtk/gtkeventcontrollerkey.c +++ b/gtk/gtkeventcontrollerkey.c @@ -17,6 +17,16 @@ * Author(s): Carlos Garnacho <carlosg@gnome.org> */ +/** + * SECTION:gtkeventcontrollerkey + * @Short_description: Event controller for key events + * @Title: GtkEventControllerKey + * @See_also: #GtkEventController + * + * #GtkEventControllerKey is an event controller meant for situations + * where you need access to key events. + **/ + #include "config.h" #include "gtkintl.h" @@ -156,12 +166,32 @@ gtk_event_controller_key_class_init (GtkEventControllerKeyClass *klass) object_class->finalize = gtk_event_controller_finalize; controller_class->handle_event = gtk_event_controller_key_handle_event; + /** + * GtkEventControllerKey::key-pressed: + * @controller: the object which received the signal. + * @keyval: the pressed key. + * @keycode: the raw code of the pressed key. + * @state: the bitmask, representing the state of modifier keys and pointer buttons. See #GdkModifierType. + * + * This signal is emitted whenever a key is pressed. + * + * Returns: %TRUE if the key press was handled, %FALSE otherwise. + */ signals[KEY_PRESSED] = g_signal_new (I_("key-pressed"), GTK_TYPE_EVENT_CONTROLLER_KEY, G_SIGNAL_RUN_LAST, 0, _gtk_boolean_handled_accumulator, NULL, NULL, G_TYPE_BOOLEAN, 3, G_TYPE_UINT, G_TYPE_UINT, GDK_TYPE_MODIFIER_TYPE); + /** + * GtkEventControllerKey::key-released: + * @controller: the object which received the signal. + * @keyval: the released key. + * @keycode: the raw code of the released key. + * @state: the bitmask, representing the state of modifier keys and pointer buttons. See #GdkModifierType. + * + * This signal is emitted whenever a key is released. + */ signals[KEY_RELEASED] = g_signal_new (I_("key-released"), GTK_TYPE_EVENT_CONTROLLER_KEY, @@ -231,8 +261,6 @@ gtk_event_controller_key_set_im_context (GtkEventControllerKey *controller, * Gets the IM context of a key controller. * * Returns: (transfer none): the IM context - * - * Since: 3.94 **/ GtkIMContext * gtk_event_controller_key_get_im_context (GtkEventControllerKey *controller) diff --git a/gtk/gtkeventcontrollermotion.c b/gtk/gtkeventcontrollermotion.c index 3c85301f57..f1d0d33a77 100644 --- a/gtk/gtkeventcontrollermotion.c +++ b/gtk/gtkeventcontrollermotion.c @@ -25,8 +25,6 @@ * * #GtkEventControllerMotion is an event controller meant for situations * where you need to track the position of the pointer. - * - * This object was added in 3.94. **/ #include "config.h" diff --git a/gtk/gtkeventcontrollerscroll.c b/gtk/gtkeventcontrollerscroll.c index 694aea3867..db5db881d1 100644 --- a/gtk/gtkeventcontrollerscroll.c +++ b/gtk/gtkeventcontrollerscroll.c @@ -55,8 +55,6 @@ * #GtkEventControllerScroll::decelerate signal, emitted at the end of scrolling * with two X/Y velocity arguments that are consistent with the motion that * was received. - * - * This object was added in 3.93. **/ #include "config.h" diff --git a/gtk/gtkfilechooserentry.c b/gtk/gtkfilechooserentry.c index 1b17f2aec3..0ffc96f1e8 100644 --- a/gtk/gtkfilechooserentry.c +++ b/gtk/gtkfilechooserentry.c @@ -24,7 +24,7 @@ #include "gtkcelllayout.h" #include "gtkcellrenderertext.h" -#include "gtkentry.h" +#include "gtkentryprivate.h" #include "gtkfilesystemmodel.h" #include "gtklabel.h" #include "gtkmain.h" @@ -84,10 +84,11 @@ static guint signals[LAST_SIGNAL] = { 0 }; static void gtk_file_chooser_entry_finalize (GObject *object); static void gtk_file_chooser_entry_dispose (GObject *object); static void gtk_file_chooser_entry_grab_focus (GtkWidget *widget); -static gboolean gtk_file_chooser_entry_tab_handler (GtkWidget *widget, - GdkEvent *event); -static gboolean gtk_file_chooser_entry_event (GtkWidget *widget, - GdkEvent *event); +static gboolean gtk_file_chooser_entry_tab_handler (GtkEventControllerKey *key, + guint keyval, + guint keycode, + GdkModifierType state, + GtkFileChooserEntry *chooser_entry); #ifdef G_OS_WIN32 static gint insert_text_callback (GtkFileChooserEntry *widget, @@ -169,7 +170,6 @@ _gtk_file_chooser_entry_class_init (GtkFileChooserEntryClass *class) gobject_class->dispatch_properties_changed = gtk_file_chooser_entry_dispatch_properties_changed; widget_class->grab_focus = gtk_file_chooser_entry_grab_focus; - widget_class->event = gtk_file_chooser_entry_event; signals[HIDE_ENTRY] = g_signal_new (I_("hide-entry"), @@ -259,8 +259,16 @@ match_func (GtkEntryCompletion *compl, } static void +chooser_entry_focus_out (GtkEventControllerKey *key_controller, + GtkFileChooserEntry *chooser_entry) +{ + set_complete_on_load (chooser_entry, FALSE); +} + +static void _gtk_file_chooser_entry_init (GtkFileChooserEntry *chooser_entry) { + GtkEventController *controller; GtkEntryCompletion *comp; GtkCellRenderer *cell; @@ -293,10 +301,18 @@ _gtk_file_chooser_entry_init (GtkFileChooserEntry *chooser_entry) gtk_entry_set_completion (GTK_ENTRY (chooser_entry), comp); g_object_unref (comp); - /* NB: This needs to happen after the completion is set, so this handler - * runs before the handler installed by entrycompletion */ - g_signal_connect (chooser_entry, "event", - G_CALLBACK (gtk_file_chooser_entry_tab_handler), NULL); + + /* NB: This needs to happen after the completion is set, so this controller + * runs before the one installed by entrycompletion */ + controller = gtk_event_controller_key_new (); + g_signal_connect (controller, + "key-pressed", + G_CALLBACK (gtk_file_chooser_entry_tab_handler), + chooser_entry); + g_signal_connect (controller, + "focus-out", G_CALLBACK (chooser_entry_focus_out), + chooser_entry); + gtk_widget_add_controller (GTK_WIDGET (chooser_entry), controller); #ifdef G_OS_WIN32 g_signal_connect (chooser_entry, "insert-text", @@ -496,28 +512,19 @@ start_explicit_completion (GtkFileChooserEntry *chooser_entry) } static gboolean -gtk_file_chooser_entry_tab_handler (GtkWidget *widget, - GdkEvent *event) +gtk_file_chooser_entry_tab_handler (GtkEventControllerKey *key, + guint keyval, + guint keycode, + GdkModifierType state, + GtkFileChooserEntry *chooser_entry) { - GtkFileChooserEntry *chooser_entry; - GtkEditable *editable; - GdkModifierType state; + GtkEditable *editable = GTK_EDITABLE (chooser_entry); gint start, end; - guint keyval; - - chooser_entry = GTK_FILE_CHOOSER_ENTRY (widget); - editable = GTK_EDITABLE (widget); - - if (gdk_event_get_event_type (event) != GDK_KEY_PRESS) - return GDK_EVENT_PROPAGATE; - - if (!gdk_event_get_keyval (event, &keyval)) - return GDK_EVENT_PROPAGATE; if (keyval == GDK_KEY_Escape && chooser_entry->eat_escape) { - g_signal_emit (widget, signals[HIDE_ENTRY], 0); + g_signal_emit (chooser_entry, signals[HIDE_ENTRY], 0); return GDK_EVENT_STOP; } @@ -527,14 +534,13 @@ gtk_file_chooser_entry_tab_handler (GtkWidget *widget, if (keyval != GDK_KEY_Tab) return GDK_EVENT_PROPAGATE; - if (gtk_get_current_event_state (&state) && - (state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK) + if ((state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK) return GDK_EVENT_PROPAGATE; /* This is a bit evil -- it makes Tab never leave the entry. It basically * makes it 'safe' for people to hit. */ gtk_editable_get_selection_bounds (editable, &start, &end); - + if (start != end) gtk_editable_set_position (editable, MAX (start, end)); else @@ -543,27 +549,6 @@ gtk_file_chooser_entry_tab_handler (GtkWidget *widget, return GDK_EVENT_STOP; } -static gboolean -gtk_file_chooser_entry_event (GtkWidget *widget, - GdkEvent *event) -{ - GtkFileChooserEntry *chooser_entry = GTK_FILE_CHOOSER_ENTRY (widget); - - if (gdk_event_get_event_type (event) == GDK_FOCUS_CHANGE) - { - gboolean focus_in; - - gdk_event_get_focus_in (event, &focus_in); - - if (!focus_in) - set_complete_on_load (chooser_entry, FALSE); - - return GDK_EVENT_PROPAGATE; - } - - return GDK_EVENT_PROPAGATE; -} - static void update_inline_completion (GtkFileChooserEntry *chooser_entry) { diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c index e8c6ae74cd..c96a92a447 100644 --- a/gtk/gtkfilechooserwidget.c +++ b/gtk/gtkfilechooserwidget.c @@ -81,6 +81,7 @@ #include "gtkeventcontrollerkey.h" #include "gtkdebug.h" #include "gtkfilechoosererrorstackprivate.h" +#include "gtkentryprivate.h" #include <cairo-gobject.h> @@ -456,8 +457,6 @@ static void gtk_file_chooser_widget_hierarchy_changed (GtkWidget *w static void gtk_file_chooser_widget_style_updated (GtkWidget *widget); static void gtk_file_chooser_widget_display_changed (GtkWidget *widget, GdkDisplay *previous_display); -static gboolean gtk_file_chooser_widget_event (GtkWidget *widget, - GdkEvent *event); static gboolean gtk_file_chooser_widget_set_current_folder (GtkFileChooser *chooser, GFile *folder, @@ -1338,9 +1337,6 @@ key_press_cb (GtkEventController *controller, return GDK_EVENT_STOP; } - if (!gdk_event_get_state (event, &state)) - return GDK_EVENT_PROPAGATE; - if ((keyval == GDK_KEY_Return || keyval == GDK_KEY_ISO_Enter || keyval == GDK_KEY_KP_Enter @@ -1382,18 +1378,18 @@ key_press_cb (GtkEventController *controller, } static gboolean -gtk_file_chooser_widget_event (GtkWidget *widget, - GdkEvent *event) +widget_key_press_cb (GtkEventController *controller, + guint keyval, + guint keycode, + GdkModifierType state, + gpointer data) { - GtkFileChooserWidget *impl = (GtkFileChooserWidget *) widget; + GtkFileChooserWidget *impl = (GtkFileChooserWidget *) data; GtkFileChooserWidgetPrivate *priv = impl->priv; - guint keyval, state; - - if (gdk_event_get_event_type (event) != GDK_KEY_PRESS) - return GDK_EVENT_PROPAGATE; + gboolean handled = FALSE; + GdkEvent *event; - gdk_event_get_keyval (event, &keyval); - gdk_event_get_state (event, &state); + event = gtk_get_current_event (); if (should_trigger_location_entry (impl, keyval, state)) { @@ -1404,17 +1400,20 @@ gtk_file_chooser_widget_event (GtkWidget *widget, gdk_event_get_string (event, &string); location_popup_handler (impl, string); - return GDK_EVENT_STOP; + handled = TRUE; } } - else if (gtk_search_entry_handle_event (GTK_SEARCH_ENTRY (priv->search_entry), event)) + else if (gtk_search_entry_handle_event (GTK_SEARCH_ENTRY (priv->search_entry), (GdkEvent *) event)) { if (priv->operation_mode != OPERATION_MODE_SEARCH) operation_mode_set (impl, OPERATION_MODE_SEARCH); - return GDK_EVENT_STOP; + + handled = TRUE; } - return GDK_EVENT_PROPAGATE; + g_object_unref (event); + + return handled; } /* Callback used from gtk_tree_selection_selected_foreach(); adds a bookmark for @@ -2536,17 +2535,16 @@ location_entry_create (GtkFileChooserWidget *impl) } static gboolean -external_entry_event (GtkWidget *entry, - GdkEvent *event, - GtkFileChooserWidget *impl) +forward_key (GtkEventControllerKey *key, + guint keyval, + guint keycode, + GdkModifierType modifiers, + GtkFileChooserWidget *impl) { /* Since the entry is not a descendent of the file chooser widget * in this case, we need to manually make our bindings apply. */ - if (gdk_event_get_event_type (event) != GDK_KEY_PRESS) - return GDK_EVENT_PROPAGATE; - - return gtk_bindings_activate_event (G_OBJECT (impl), (GdkEventKey *)event); + return gtk_event_controller_key_forward (key, GTK_WIDGET (impl)); } /* Creates the widgets specific to Save mode */ @@ -2571,8 +2569,9 @@ save_widgets_create (GtkFileChooserWidget *impl) priv->location_entry = priv->external_entry; location_entry_setup (impl); - g_signal_connect_after (priv->external_entry, "event", - G_CALLBACK (external_entry_event), impl); + g_signal_connect_after (gtk_entry_get_key_controller (GTK_ENTRY (priv->external_entry)), + "key-pressed", + G_CALLBACK (forward_key), impl); return; } @@ -2613,7 +2612,8 @@ save_widgets_destroy (GtkFileChooserWidget *impl) if (priv->external_entry && priv->external_entry == priv->location_entry) { - g_signal_handlers_disconnect_by_func (priv->external_entry, external_entry_event, impl); + g_signal_handlers_disconnect_by_func (gtk_entry_get_key_controller (GTK_ENTRY (priv->external_entry)), + forward_key, impl); location_entry_disconnect (impl); priv->location_entry = NULL; @@ -7972,7 +7972,6 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class) widget_class->hierarchy_changed = gtk_file_chooser_widget_hierarchy_changed; widget_class->style_updated = gtk_file_chooser_widget_style_updated; widget_class->display_changed = gtk_file_chooser_widget_display_changed; - widget_class->event = gtk_file_chooser_widget_event; widget_class->measure = gtk_file_chooser_widget_measure; widget_class->size_allocate = gtk_file_chooser_widget_size_allocate; @@ -8396,6 +8395,7 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class) gtk_widget_class_bind_template_callback (widget_class, multi_press_cb); gtk_widget_class_bind_template_callback (widget_class, long_press_cb); gtk_widget_class_bind_template_callback (widget_class, key_press_cb); + gtk_widget_class_bind_template_callback (widget_class, widget_key_press_cb); gtk_widget_class_set_css_name (widget_class, I_("filechooser")); } diff --git a/gtk/gtkfixed.c b/gtk/gtkfixed.c index 22aef3eaa5..e1f7af74a0 100644 --- a/gtk/gtkfixed.c +++ b/gtk/gtkfixed.c @@ -80,11 +80,12 @@ #include "gtkprivate.h" #include "gtkintl.h" - typedef struct { - GList *children; -} GtkFixedPrivate; + GtkWidget *widget; + gint x; + gint y; +} GtkFixedChild; enum { CHILD_PROP_0, @@ -92,6 +93,8 @@ enum { CHILD_PROP_Y }; +static GQuark child_data_quark = 0; + static void gtk_fixed_measure (GtkWidget *widget, GtkOrientation orientation, int for_size, @@ -124,7 +127,15 @@ static void gtk_fixed_get_child_property (GtkContainer *container, GValue *value, GParamSpec *pspec); -G_DEFINE_TYPE_WITH_PRIVATE (GtkFixed, gtk_fixed, GTK_TYPE_CONTAINER) +G_DEFINE_TYPE (GtkFixed, gtk_fixed, GTK_TYPE_CONTAINER) + +static GtkFixedChild * +get_fixed_child (GtkWidget *widget) +{ + g_assert (GTK_IS_FIXED (gtk_widget_get_parent (widget))); + + return (GtkFixedChild *) g_object_get_qdata (G_OBJECT (widget), child_data_quark); +} static void gtk_fixed_class_init (GtkFixedClass *class) @@ -160,6 +171,8 @@ gtk_fixed_class_init (GtkFixedClass *class) P_("Y position of child widget"), G_MININT, G_MAXINT, 0, GTK_PARAM_READWRITE)); + + child_data_quark = g_quark_from_static_string ("gtk-fixed-child-data"); } static GType @@ -171,10 +184,6 @@ gtk_fixed_child_type (GtkContainer *container) static void gtk_fixed_init (GtkFixed *fixed) { - GtkFixedPrivate *priv = gtk_fixed_get_instance_private (fixed); - - priv->children = NULL; - gtk_widget_set_has_surface (GTK_WIDGET (fixed), FALSE); } @@ -191,26 +200,6 @@ gtk_fixed_new (void) return g_object_new (GTK_TYPE_FIXED, NULL); } -static GtkFixedChild* -get_child (GtkFixed *fixed, - GtkWidget *widget) -{ - GtkFixedPrivate *priv = gtk_fixed_get_instance_private (fixed); - GList *children; - - for (children = priv->children; children; children = children->next) - { - GtkFixedChild *child; - - child = children->data; - - if (child->widget == widget) - return child; - } - - return NULL; -} - /** * gtk_fixed_put: * @fixed: a #GtkFixed. @@ -226,7 +215,6 @@ gtk_fixed_put (GtkFixed *fixed, gint x, gint y) { - GtkFixedPrivate *priv = gtk_fixed_get_instance_private (fixed); GtkFixedChild *child_info; g_return_if_fail (GTK_IS_FIXED (fixed)); @@ -234,41 +222,39 @@ gtk_fixed_put (GtkFixed *fixed, g_return_if_fail (_gtk_widget_get_parent (widget) == NULL); child_info = g_new (GtkFixedChild, 1); - child_info->widget = widget; child_info->x = x; child_info->y = y; + g_object_set_qdata_full (G_OBJECT (widget), child_data_quark, child_info, g_free); gtk_widget_set_parent (widget, GTK_WIDGET (fixed)); - - priv->children = g_list_append (priv->children, child_info); } static void gtk_fixed_move_internal (GtkFixed *fixed, + GtkWidget *widget, GtkFixedChild *child, gint x, gint y) { g_return_if_fail (GTK_IS_FIXED (fixed)); - g_return_if_fail (gtk_widget_get_parent (child->widget) == GTK_WIDGET (fixed)); - gtk_widget_freeze_child_notify (child->widget); + gtk_widget_freeze_child_notify (widget); if (child->x != x) { child->x = x; - gtk_widget_child_notify (child->widget, "x"); + gtk_widget_child_notify (widget, "x"); } if (child->y != y) { child->y = y; - gtk_widget_child_notify (child->widget, "y"); + gtk_widget_child_notify (widget, "y"); } - gtk_widget_thaw_child_notify (child->widget); + gtk_widget_thaw_child_notify (widget); - if (gtk_widget_get_visible (child->widget) && + if (gtk_widget_get_visible (widget) && gtk_widget_get_visible (GTK_WIDGET (fixed))) gtk_widget_queue_resize (GTK_WIDGET (fixed)); } @@ -288,7 +274,9 @@ gtk_fixed_move (GtkFixed *fixed, gint x, gint y) { - gtk_fixed_move_internal (fixed, get_child (fixed, widget), x, y); + g_return_if_fail (gtk_widget_get_parent (widget) == GTK_WIDGET (fixed)); + + gtk_fixed_move_internal (fixed, widget, get_fixed_child (widget), x, y); } static void @@ -299,20 +287,20 @@ gtk_fixed_set_child_property (GtkContainer *container, GParamSpec *pspec) { GtkFixed *fixed = GTK_FIXED (container); - GtkFixedChild *fixed_child; - - fixed_child = get_child (fixed, child); + GtkFixedChild *fixed_child = get_fixed_child (child); switch (property_id) { case CHILD_PROP_X: gtk_fixed_move_internal (fixed, + child, fixed_child, g_value_get_int (value), fixed_child->y); break; case CHILD_PROP_Y: gtk_fixed_move_internal (fixed, + child, fixed_child, fixed_child->x, g_value_get_int (value)); @@ -330,10 +318,8 @@ gtk_fixed_get_child_property (GtkContainer *container, GValue *value, GParamSpec *pspec) { - GtkFixedChild *fixed_child; + GtkFixedChild *fixed_child = get_fixed_child (child); - fixed_child = get_child (GTK_FIXED (container), child); - switch (property_id) { case CHILD_PROP_X: @@ -357,33 +343,30 @@ gtk_fixed_measure (GtkWidget *widget, int *minimum_baseline, int *natural_baseline) { - GtkFixed *fixed = GTK_FIXED (widget); - GtkFixedPrivate *priv = gtk_fixed_get_instance_private (fixed); - GtkFixedChild *child; - GList *children; - gint child_min, child_nat; - - *minimum = 0; - *natural = 0; + int child_min, child_nat; + GtkWidget *child; + GtkFixedChild *child_info; - for (children = priv->children; children; children = children->next) + for (child = gtk_widget_get_first_child (widget); + child != NULL; + child = gtk_widget_get_next_sibling (child)) { - child = children->data; + child_info = get_fixed_child (child); - if (!gtk_widget_get_visible (child->widget)) + if (!gtk_widget_get_visible (child)) continue; - gtk_widget_measure (child->widget, orientation, -1, &child_min, &child_nat, NULL, NULL); + gtk_widget_measure (child, orientation, -1, &child_min, &child_nat, NULL, NULL); if (orientation == GTK_ORIENTATION_HORIZONTAL) { - *minimum = MAX (*minimum, child->x + child_min); - *natural = MAX (*natural, child->x + child_nat); + *minimum = MAX (*minimum, child_info->x + child_min); + *natural = MAX (*natural, child_info->x + child_nat); } else /* VERTICAL */ { - *minimum = MAX (*minimum, child->y + child_min); - *natural = MAX (*natural, child->y + child_nat); + *minimum = MAX (*minimum, child_info->y + child_min); + *natural = MAX (*natural, child_info->y + child_nat); } } } @@ -393,27 +376,27 @@ gtk_fixed_size_allocate (GtkWidget *widget, const GtkAllocation *allocation, int baseline) { - GtkFixed *fixed = GTK_FIXED (widget); - GtkFixedPrivate *priv = gtk_fixed_get_instance_private (fixed); - GtkFixedChild *child; + GtkWidget *child; + GtkFixedChild *child_info; GtkAllocation child_allocation; GtkRequisition child_requisition; - GList *children; - for (children = priv->children; children; children = children->next) + for (child = gtk_widget_get_first_child (widget); + child != NULL; + child = gtk_widget_get_next_sibling (child)) { - child = children->data; + child_info = get_fixed_child (child); - if (!gtk_widget_get_visible (child->widget)) + if (!gtk_widget_get_visible (child)) continue; - gtk_widget_get_preferred_size (child->widget, &child_requisition, NULL); - child_allocation.x = child->x; - child_allocation.y = child->y; + gtk_widget_get_preferred_size (child, &child_requisition, NULL); + child_allocation.x = child_info->x; + child_allocation.y = child_info->y; child_allocation.width = child_requisition.width; child_allocation.height = child_requisition.height; - gtk_widget_size_allocate (child->widget, &child_allocation, -1); + gtk_widget_size_allocate (child, &child_allocation, -1); } } @@ -428,32 +411,7 @@ static void gtk_fixed_remove (GtkContainer *container, GtkWidget *widget) { - GtkFixed *fixed = GTK_FIXED (container); - GtkFixedPrivate *priv = gtk_fixed_get_instance_private (fixed); - GtkFixedChild *child; - GtkWidget *widget_container = GTK_WIDGET (container); - GList *children; - - for (children = priv->children; children; children = children->next) - { - child = children->data; - - if (child->widget == widget) - { - gboolean was_visible = gtk_widget_get_visible (widget); - - gtk_widget_unparent (widget); - - priv->children = g_list_remove_link (priv->children, children); - g_list_free (children); - g_free (child); - - if (was_visible && gtk_widget_get_visible (widget_container)) - gtk_widget_queue_resize (widget_container); - - break; - } - } + gtk_widget_unparent (widget); } static void @@ -461,17 +419,16 @@ gtk_fixed_forall (GtkContainer *container, GtkCallback callback, gpointer callback_data) { - GtkFixed *fixed = GTK_FIXED (container); - GtkFixedPrivate *priv = gtk_fixed_get_instance_private (fixed); - GtkFixedChild *child; - GList *children; + GtkWidget *widget = GTK_WIDGET (container); + GtkWidget *child; - children = priv->children; - while (children) + child = gtk_widget_get_first_child (widget); + while (child) { - child = children->data; - children = children->next; + GtkWidget *next = gtk_widget_get_next_sibling (child); + + (* callback) (child, callback_data); - (* callback) (child->widget, callback_data); + child = next; } } diff --git a/gtk/gtkfixed.h b/gtk/gtkfixed.h index 4caeeb94b0..74e88d9d3b 100644 --- a/gtk/gtkfixed.h +++ b/gtk/gtkfixed.h @@ -44,7 +44,6 @@ G_BEGIN_DECLS typedef struct _GtkFixed GtkFixed; typedef struct _GtkFixedClass GtkFixedClass; -typedef struct _GtkFixedChild GtkFixedChild; struct _GtkFixed { @@ -62,14 +61,6 @@ struct _GtkFixedClass void (*_gtk_reserved4) (void); }; -struct _GtkFixedChild -{ - GtkWidget *widget; - gint x; - gint y; -}; - - GDK_AVAILABLE_IN_ALL GType gtk_fixed_get_type (void) G_GNUC_CONST; GDK_AVAILABLE_IN_ALL diff --git a/gtk/gtkfontchooserdialog.c b/gtk/gtkfontchooserdialog.c index 0208040ef7..2604b03dc0 100644 --- a/gtk/gtkfontchooserdialog.c +++ b/gtk/gtkfontchooserdialog.c @@ -39,6 +39,7 @@ #include "gtktogglebutton.h" #include "gtkheaderbar.h" #include "gtkactionable.h" +#include "gtkeventcontrollerkey.h" struct _GtkFontChooserDialogPrivate { @@ -124,21 +125,15 @@ font_activated_cb (GtkFontChooser *fontchooser, } static gboolean -gtk_font_chooser_dialog_event (GtkWidget *dialog, - GdkEvent *event) +dialog_forward_key (GtkEventControllerKey *controller, + guint keyval, + guint keycode, + GdkModifierType modifiers, + GtkWidget *widget) { - GtkFontChooserDialog *fdialog = GTK_FONT_CHOOSER_DIALOG (dialog); - gboolean handled = FALSE; + GtkFontChooserDialog *fdialog = GTK_FONT_CHOOSER_DIALOG (widget); - if (gdk_event_get_event_type (event) != GDK_KEY_PRESS) - return GDK_EVENT_PROPAGATE; - - handled = GTK_WIDGET_CLASS (gtk_font_chooser_dialog_parent_class)->event (dialog, event); - - if (!handled) - handled = gtk_font_chooser_widget_handle_event (fdialog->priv->fontchooser, (GdkEventKey *)event); - - return handled; + return gtk_event_controller_key_forward (controller, fdialog->priv->fontchooser); } static void @@ -208,7 +203,6 @@ gtk_font_chooser_dialog_class_init (GtkFontChooserDialogClass *klass) gobject_class->get_property = gtk_font_chooser_dialog_get_property; gobject_class->set_property = gtk_font_chooser_dialog_set_property; - widget_class->event = gtk_font_chooser_dialog_event; widget_class->map = gtk_font_chooser_dialog_map; _gtk_font_chooser_install_properties (gobject_class); @@ -222,6 +216,7 @@ gtk_font_chooser_dialog_class_init (GtkFontChooserDialogClass *klass) gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserDialog, select_button); gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserDialog, cancel_button); gtk_widget_class_bind_template_callback (widget_class, font_activated_cb); + gtk_widget_class_bind_template_callback (widget_class, dialog_forward_key); } static void diff --git a/gtk/gtkfontchooserwidget.c b/gtk/gtkfontchooserwidget.c index 6b161f084c..442bc81540 100644 --- a/gtk/gtkfontchooserwidget.c +++ b/gtk/gtkfontchooserwidget.c @@ -881,6 +881,9 @@ gtk_font_chooser_widget_init (GtkFontChooserWidget *fontchooser) gtk_font_chooser_widget_set_cell_size (fontchooser); gtk_font_chooser_widget_take_font_desc (fontchooser, NULL); + + gtk_search_entry_set_key_capture_widget (GTK_SEARCH_ENTRY (priv->search_entry), + GTK_WIDGET (fontchooser)); } /** @@ -2520,17 +2523,6 @@ gtk_font_chooser_widget_iface_init (GtkFontChooserIface *iface) iface->get_font_map = gtk_font_chooser_widget_get_font_map; } -gboolean -gtk_font_chooser_widget_handle_event (GtkWidget *widget, - GdkEventKey *key_event) -{ - GtkFontChooserWidget *fontchooser = GTK_FONT_CHOOSER_WIDGET (widget); - GtkFontChooserWidgetPrivate *priv = fontchooser->priv; - GdkEvent *event = (GdkEvent *)key_event; - - return gtk_search_entry_handle_event (GTK_SEARCH_ENTRY (priv->search_entry), event); -} - GAction * gtk_font_chooser_widget_get_tweak_action (GtkWidget *widget) { diff --git a/gtk/gtkfontchooserwidgetprivate.h b/gtk/gtkfontchooserwidgetprivate.h index 5abdc5e47b..1a7dd743ec 100644 --- a/gtk/gtkfontchooserwidgetprivate.h +++ b/gtk/gtkfontchooserwidgetprivate.h @@ -22,9 +22,6 @@ G_BEGIN_DECLS -gboolean gtk_font_chooser_widget_handle_event (GtkWidget *widget, - GdkEventKey *event); - GAction *gtk_font_chooser_widget_get_tweak_action (GtkWidget *fontchooser); G_END_DECLS diff --git a/gtk/gtkgesturestylus.c b/gtk/gtkgesturestylus.c index 294fa293a3..7b02d07954 100644 --- a/gtk/gtkgesturestylus.c +++ b/gtk/gtkgesturestylus.c @@ -135,8 +135,6 @@ gtk_gesture_stylus_init (GtkGestureStylus *gesture) * Creates a new #GtkGestureStylus. * * Returns: a newly created stylus gesture - * - * Since: 3.94 **/ GtkGesture * gtk_gesture_stylus_new (void) @@ -167,8 +165,6 @@ gesture_get_current_event (GtkGestureStylus *gesture) * signals. * * Returns: #TRUE if there is a current value for the axis - * - * Since: 3.94 **/ gboolean gtk_gesture_stylus_get_axis (GtkGestureStylus *gesture, diff --git a/gtk/gtkiconhelper.c b/gtk/gtkiconhelper.c index a817eed679..1c696a0d47 100644 --- a/gtk/gtkiconhelper.c +++ b/gtk/gtkiconhelper.c @@ -123,6 +123,8 @@ ensure_paintable_for_gicon (GtkIconHelper *self, *symbolic = gtk_icon_info_is_symbolic (info); paintable = GDK_PAINTABLE (gtk_icon_info_load_texture (info)); + g_object_unref (info); + if (paintable && scale != 1) { GdkPaintable *orig = paintable; @@ -426,22 +428,6 @@ gtk_icon_helper_new (GtkCssNode *css_node, return self; } -GtkSizeRequestMode -gtk_icon_helper_get_request_mode (GtkIconHelper *self) -{ - switch (gtk_image_definition_get_storage_type (self->def)) - { - case GTK_IMAGE_PAINTABLE: - return GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH; - - case GTK_IMAGE_ICON_NAME: - case GTK_IMAGE_GICON: - case GTK_IMAGE_EMPTY: - default: - return GTK_SIZE_REQUEST_CONSTANT_SIZE; - } -} - int gtk_icon_helper_get_size (GtkIconHelper *self) { diff --git a/gtk/gtkiconhelperprivate.h b/gtk/gtkiconhelperprivate.h index e2498f62d7..b7656bb849 100644 --- a/gtk/gtkiconhelperprivate.h +++ b/gtk/gtkiconhelperprivate.h @@ -64,7 +64,6 @@ GdkPaintable *_gtk_icon_helper_peek_paintable (GtkIconHelper *self); GtkImageDefinition *gtk_icon_helper_get_definition (GtkIconHelper *self); const gchar *_gtk_icon_helper_get_icon_name (GtkIconHelper *self); -GtkSizeRequestMode gtk_icon_helper_get_request_mode (GtkIconHelper *self); int gtk_icon_helper_get_size (GtkIconHelper *self); gboolean _gtk_icon_helper_get_force_scale_pixbuf (GtkIconHelper *self); diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c index 33ef8542a9..eed2c279be 100644 --- a/gtk/gtkicontheme.c +++ b/gtk/gtkicontheme.c @@ -4283,7 +4283,7 @@ gtk_icon_info_load_symbolic_svg (GtkIconInfo *icon_info, " width=\"", width, "\"\n" " height=\"", height, "\">\n" " <style type=\"text/css\">\n" - " rect,path {\n" + " rect,path,ellipse,circle {\n" " fill: ", css_fg," !important;\n" " }\n" " .warning {\n" diff --git a/gtk/gtkicontheme.h b/gtk/gtkicontheme.h index b618ffec0d..057d2fe6f3 100644 --- a/gtk/gtkicontheme.h +++ b/gtk/gtkicontheme.h @@ -112,17 +112,17 @@ struct _GtkIconThemeClass * @GTK_ICON_LOOKUP_GENERIC_FALLBACK: Try to shorten icon name at '-' * characters before looking at inherited themes. This flag is only * supported in functions that take a single icon name. For more general - * fallback, see gtk_icon_theme_choose_icon(). Since 2.12. + * fallback, see gtk_icon_theme_choose_icon() * @GTK_ICON_LOOKUP_FORCE_SIZE: Always get the icon scaled to the - * requested size. Since 2.14. + * requested size * @GTK_ICON_LOOKUP_FORCE_REGULAR: Try to always load regular icons, even - * when symbolic icon names are given. Since 3.14. + * when symbolic icon names are given * @GTK_ICON_LOOKUP_FORCE_SYMBOLIC: Try to always load symbolic icons, even - * when regular icon names are given. Since 3.14. + * when regular icon names are given * @GTK_ICON_LOOKUP_DIR_LTR: Try to load a variant of the icon for left-to-right - * text direction. Since 3.14. + * text direction * @GTK_ICON_LOOKUP_DIR_RTL: Try to load a variant of the icon for right-to-left - * text direction. Since 3.14. + * text direction * * Used to specify options for gtk_icon_theme_lookup_icon() */ diff --git a/gtk/gtkiconview.c b/gtk/gtkiconview.c index 4abc8e529a..680ddb61de 100644 --- a/gtk/gtkiconview.c +++ b/gtk/gtkiconview.c @@ -277,14 +277,14 @@ static void update_pixbuf_cell (GtkIco /* Source side drag signals */ static void gtk_icon_view_drag_begin (GtkWidget *widget, - GdkDragContext *context); + GdkDrag *drag); static void gtk_icon_view_drag_end (GtkWidget *widget, - GdkDragContext *context); + GdkDrag *drag); static void gtk_icon_view_drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data); static void gtk_icon_view_drag_data_delete (GtkWidget *widget, - GdkDragContext *context); + GdkDrag *drag); /* Target side drag signals */ static void gtk_icon_view_drag_leave (GtkWidget *widget, @@ -5702,27 +5702,27 @@ unset_reorderable (GtkIconView *icon_view) } static void -set_source_row (GdkDragContext *context, +set_source_row (GdkDrag *drag, GtkTreeModel *model, GtkTreePath *source_row) { if (source_row) - g_object_set_data_full (G_OBJECT (context), + g_object_set_data_full (G_OBJECT (drag), I_("gtk-icon-view-source-row"), gtk_tree_row_reference_new (model, source_row), (GDestroyNotify) gtk_tree_row_reference_free); else - g_object_set_data_full (G_OBJECT (context), + g_object_set_data_full (G_OBJECT (drag), I_("gtk-icon-view-source-row"), NULL, NULL); } static GtkTreePath* -get_source_row (GdkDragContext *context) +get_source_row (GdkDrag *drag) { GtkTreeRowReference *ref; - ref = g_object_get_data (G_OBJECT (context), "gtk-icon-view-source-row"); + ref = g_object_get_data (G_OBJECT (drag), "gtk-icon-view-source-row"); if (ref) return gtk_tree_row_reference_get_path (ref); @@ -6020,7 +6020,7 @@ gtk_icon_view_maybe_begin_drag (GtkIconView *icon_view, GdkDevice *device) { GtkWidget *widget = GTK_WIDGET (icon_view); - GdkDragContext *context; + GdkDrag *drag; GtkTreePath *path = NULL; GtkTreeModel *model; gboolean retval = FALSE; @@ -6064,14 +6064,14 @@ gtk_icon_view_maybe_begin_drag (GtkIconView *icon_view, retval = TRUE; - context = gtk_drag_begin_with_coordinates (widget, - device, - gtk_drag_source_get_target_list (widget), - icon_view->priv->source_actions, - icon_view->priv->press_start_x, - icon_view->priv->press_start_y); + drag = gtk_drag_begin_with_coordinates (widget, + device, + gtk_drag_source_get_target_list (widget), + icon_view->priv->source_actions, + icon_view->priv->press_start_x, + icon_view->priv->press_start_y); - set_source_row (context, model, path); + set_source_row (drag, model, path); out: if (path) @@ -6083,7 +6083,7 @@ gtk_icon_view_maybe_begin_drag (GtkIconView *icon_view, /* Source side drag signals */ static void gtk_icon_view_drag_begin (GtkWidget *widget, - GdkDragContext *context) + GdkDrag *drag) { GtkIconView *icon_view; GtkIconViewItem *item; @@ -6112,21 +6112,21 @@ gtk_icon_view_drag_begin (GtkWidget *widget, icon = gtk_icon_view_create_drag_icon (icon_view, path); gtk_tree_path_free (path); - gtk_drag_set_icon_paintable (context, icon, x, y); + gtk_drag_set_icon_paintable (drag, icon, x, y); g_object_unref (icon); } static void gtk_icon_view_drag_end (GtkWidget *widget, - GdkDragContext *context) + GdkDrag *drag) { /* do nothing */ } static void gtk_icon_view_drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data) { GtkIconView *icon_view; @@ -6142,7 +6142,7 @@ gtk_icon_view_drag_data_get (GtkWidget *widget, if (!icon_view->priv->source_set) return; - source_row = get_source_row (context); + source_row = get_source_row (drag); if (source_row == NULL) return; @@ -6170,7 +6170,7 @@ gtk_icon_view_drag_data_get (GtkWidget *widget, static void gtk_icon_view_drag_data_delete (GtkWidget *widget, - GdkDragContext *context) + GdkDrag *drag) { GtkTreeModel *model; GtkIconView *icon_view; @@ -6185,7 +6185,7 @@ gtk_icon_view_drag_data_delete (GtkWidget *widget, if (!icon_view->priv->source_set) return; - source_row = get_source_row (context); + source_row = get_source_row (drag); if (source_row == NULL) return; @@ -6195,7 +6195,7 @@ gtk_icon_view_drag_data_delete (GtkWidget *widget, gtk_tree_path_free (source_row); - set_source_row (context, NULL, NULL); + set_source_row (drag, NULL, NULL); } /* Target side drag signals */ @@ -6333,7 +6333,7 @@ static GdkDragAction gtk_icon_view_get_action (GtkWidget *treeview, GdkDrop *drop) { - GdkDragContext *drag = gdk_drop_get_drag (drop); + GdkDrag *drag = gdk_drop_get_drag (drop); GtkWidget *source_widget = gtk_drag_get_source_widget (drag); GdkDragAction actions; diff --git a/gtk/gtkimage.c b/gtk/gtkimage.c index 97df60c4e8..6be66f46da 100644 --- a/gtk/gtkimage.c +++ b/gtk/gtkimage.c @@ -131,15 +131,6 @@ static GParamSpec *image_props[NUM_PROPERTIES] = { NULL, }; G_DEFINE_TYPE_WITH_PRIVATE (GtkImage, gtk_image, GTK_TYPE_WIDGET) -static GtkSizeRequestMode -gtk_image_get_request_mode (GtkWidget *widget) -{ - GtkImage *image = GTK_IMAGE (widget); - GtkImagePrivate *priv = gtk_image_get_instance_private (image); - - return gtk_icon_helper_get_request_mode (priv->icon_helper); -} - static void gtk_image_class_init (GtkImageClass *class) { @@ -154,7 +145,6 @@ gtk_image_class_init (GtkImageClass *class) widget_class = GTK_WIDGET_CLASS (class); widget_class->snapshot = gtk_image_snapshot; - widget_class->get_request_mode = gtk_image_get_request_mode; widget_class->measure = gtk_image_measure; widget_class->unrealize = gtk_image_unrealize; widget_class->style_updated = gtk_image_style_updated; diff --git a/gtk/gtkimcontextwayland.c b/gtk/gtkimcontextwayland.c index e9cc6a6eb2..141ad6c6c9 100644 --- a/gtk/gtkimcontextwayland.c +++ b/gtk/gtkimcontextwayland.c @@ -472,8 +472,13 @@ gtk_im_context_wayland_get_preedit_string (GtkIMContext *context, GTK_IM_CONTEXT_CLASS (gtk_im_context_wayland_parent_class)->get_preedit_string (context, str, attrs, cursor_pos); /* If the parent implementation returns a len>0 string, go with it */ - if (str && *str && **str) - return; + if (str && *str) + { + if (**str) + return; + + g_free (*str); + } preedit_str = context_wayland->preedit.text ? context_wayland->preedit.text : ""; diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c index e361b1ba36..86661a8d36 100644 --- a/gtk/gtklabel.c +++ b/gtk/gtklabel.c @@ -228,7 +228,7 @@ * * # Links * - * Since 2.18, GTK+ supports markup for clickable hyperlinks in addition + * GTK+ supports markup for clickable hyperlinks in addition * to regular Pango markup. The markup for links is borrowed from HTML, * using the `<a>` with “href“, “title“ and “class“ attributes. GTK+ renders links * similar to the way they appear in web browsers, with colored, underlined @@ -476,7 +476,7 @@ static gboolean gtk_label_mnemonic_activate (GtkWidget *widget, static void gtk_label_setup_mnemonic (GtkLabel *label, guint last_key); static void gtk_label_drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data); static void gtk_label_buildable_interface_init (GtkBuildableIface *iface); @@ -4576,7 +4576,7 @@ connect_mnemonics_visible_notify (GtkLabel *label) static void drag_begin_cb (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, gpointer data) { GtkLabel *label = GTK_LABEL (widget); @@ -4612,12 +4612,12 @@ drag_begin_cb (GtkWidget *widget, if (paintable) { - gtk_drag_set_icon_paintable (context, paintable, 0, 0); + gtk_drag_set_icon_paintable (drag, paintable, 0, 0); g_object_unref (paintable); } else { - gtk_drag_set_icon_default (context); + gtk_drag_set_icon_default (drag); } } @@ -5169,7 +5169,7 @@ gtk_label_set_selection_text (GtkLabel *label, static void gtk_label_drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data) { gtk_label_set_selection_text (GTK_LABEL (widget), selection_data); diff --git a/gtk/gtklayout.c b/gtk/gtklayout.c index 36a81709d2..cbe9b42113 100644 --- a/gtk/gtklayout.c +++ b/gtk/gtklayout.c @@ -59,7 +59,7 @@ typedef struct _GtkLayoutChild GtkLayoutChild; -struct _GtkLayoutPrivate +typedef struct { /* Properties */ guint width; @@ -75,9 +75,7 @@ struct _GtkLayoutPrivate /* Properties */ GList *children; - - guint freeze_count; -}; +} GtkLayoutPrivate; struct _GtkLayoutChild { GtkWidget *widget; @@ -138,7 +136,7 @@ static void gtk_layout_get_child_property (GtkContainer *container, GValue *value, GParamSpec *pspec); static void gtk_layout_adjustment_changed (GtkAdjustment *adjustment, - GtkLayout *layout); + GtkWidget *widget); static void gtk_layout_set_hadjustment_values (GtkLayout *layout); static void gtk_layout_set_vadjustment_values (GtkLayout *layout); @@ -178,7 +176,7 @@ gtk_layout_new (GtkAdjustment *hadjustment, static void gtk_layout_set_hadjustment_values (GtkLayout *layout) { - GtkLayoutPrivate *priv = layout->priv; + GtkLayoutPrivate *priv = gtk_layout_get_instance_private (layout); GtkAllocation allocation; GtkAdjustment *adj = priv->hadjustment; gdouble old_value; @@ -206,8 +204,9 @@ gtk_layout_set_hadjustment_values (GtkLayout *layout) static void gtk_layout_set_vadjustment_values (GtkLayout *layout) { + GtkLayoutPrivate *priv = gtk_layout_get_instance_private (layout); GtkAllocation allocation; - GtkAdjustment *adj = layout->priv->vadjustment; + GtkAdjustment *adj = priv->vadjustment; gdouble old_value; gdouble new_value; gdouble new_upper; @@ -215,7 +214,7 @@ gtk_layout_set_vadjustment_values (GtkLayout *layout) gtk_widget_get_allocation (GTK_WIDGET (layout), &allocation); old_value = gtk_adjustment_get_value (adj); - new_upper = MAX (allocation.height, layout->priv->height); + new_upper = MAX (allocation.height, priv->height); g_object_set (adj, "lower", 0.0, @@ -234,7 +233,7 @@ static void gtk_layout_finalize (GObject *object) { GtkLayout *layout = GTK_LAYOUT (object); - GtkLayoutPrivate *priv = layout->priv; + GtkLayoutPrivate *priv = gtk_layout_get_instance_private (layout); g_object_unref (priv->hadjustment); g_object_unref (priv->vadjustment); @@ -246,9 +245,7 @@ static void gtk_layout_set_hadjustment (GtkLayout *layout, GtkAdjustment *adjustment) { - GtkLayoutPrivate *priv; - - priv = layout->priv; + GtkLayoutPrivate *priv = gtk_layout_get_instance_private (layout); if (adjustment && priv->hadjustment == adjustment) return; @@ -276,9 +273,7 @@ static void gtk_layout_set_vadjustment (GtkLayout *layout, GtkAdjustment *adjustment) { - GtkLayoutPrivate *priv; - - priv = layout->priv; + GtkLayoutPrivate *priv = gtk_layout_get_instance_private (layout); if (adjustment && priv->vadjustment == adjustment) return; @@ -306,14 +301,14 @@ static GtkLayoutChild* get_child (GtkLayout *layout, GtkWidget *widget) { - GtkLayoutPrivate *priv = layout->priv; + GtkLayoutPrivate *priv = gtk_layout_get_instance_private (layout); GList *children; children = priv->children; while (children) { GtkLayoutChild *child; - + child = children->data; children = children->next; @@ -341,14 +336,12 @@ gtk_layout_put (GtkLayout *layout, gint x, gint y) { - GtkLayoutPrivate *priv; + GtkLayoutPrivate *priv = gtk_layout_get_instance_private (layout); GtkLayoutChild *child; g_return_if_fail (GTK_IS_LAYOUT (layout)); g_return_if_fail (GTK_IS_WIDGET (child_widget)); - priv = layout->priv; - child = g_new (GtkLayoutChild, 1); child->widget = child_widget; @@ -432,12 +425,10 @@ gtk_layout_set_size (GtkLayout *layout, guint width, guint height) { - GtkLayoutPrivate *priv; + GtkLayoutPrivate *priv = gtk_layout_get_instance_private (layout); g_return_if_fail (GTK_IS_LAYOUT (layout)); - priv = layout->priv; - g_object_freeze_notify (G_OBJECT (layout)); if (width != priv->width) { @@ -472,12 +463,10 @@ gtk_layout_get_size (GtkLayout *layout, guint *width, guint *height) { - GtkLayoutPrivate *priv; + GtkLayoutPrivate *priv = gtk_layout_get_instance_private (layout); g_return_if_fail (GTK_IS_LAYOUT (layout)); - priv = layout->priv; - if (width) *width = priv->width; if (height) @@ -563,7 +552,7 @@ gtk_layout_get_property (GObject *object, GParamSpec *pspec) { GtkLayout *layout = GTK_LAYOUT (object); - GtkLayoutPrivate *priv = layout->priv; + GtkLayoutPrivate *priv = gtk_layout_get_instance_private (layout); switch (prop_id) { @@ -598,7 +587,7 @@ gtk_layout_set_property (GObject *object, GParamSpec *pspec) { GtkLayout *layout = GTK_LAYOUT (object); - GtkLayoutPrivate *priv = layout->priv; + GtkLayoutPrivate *priv = gtk_layout_get_instance_private (layout); switch (prop_id) { @@ -691,13 +680,10 @@ gtk_layout_get_child_property (GtkContainer *container, static void gtk_layout_init (GtkLayout *layout) { - GtkLayoutPrivate *priv; + GtkLayoutPrivate *priv = gtk_layout_get_instance_private (layout); gtk_widget_set_has_surface (GTK_WIDGET (layout), FALSE); - layout->priv = gtk_layout_get_instance_private (layout); - priv = layout->priv; - priv->children = NULL; priv->width = 100; @@ -705,8 +691,6 @@ gtk_layout_init (GtkLayout *layout) priv->hadjustment = NULL; priv->vadjustment = NULL; - - priv->freeze_count = 0; } static void @@ -728,7 +712,7 @@ gtk_layout_size_allocate (GtkWidget *widget, int baseline) { GtkLayout *layout = GTK_LAYOUT (widget); - GtkLayoutPrivate *priv = layout->priv; + GtkLayoutPrivate *priv = gtk_layout_get_instance_private (layout); GList *tmp_list; int scroll_x = 0; int scroll_y = 0; @@ -777,7 +761,7 @@ gtk_layout_remove (GtkContainer *container, GtkWidget *widget) { GtkLayout *layout = GTK_LAYOUT (container); - GtkLayoutPrivate *priv = layout->priv; + GtkLayoutPrivate *priv = gtk_layout_get_instance_private (layout); GList *tmp_list; GtkLayoutChild *child = NULL; @@ -806,7 +790,7 @@ gtk_layout_forall (GtkContainer *container, gpointer callback_data) { GtkLayout *layout = GTK_LAYOUT (container); - GtkLayoutPrivate *priv = layout->priv; + GtkLayoutPrivate *priv = gtk_layout_get_instance_private (layout); GtkLayoutChild *child; GList *tmp_list; @@ -824,12 +808,7 @@ gtk_layout_forall (GtkContainer *container, static void gtk_layout_adjustment_changed (GtkAdjustment *adjustment, - GtkLayout *layout) + GtkWidget *layout) { - GtkLayoutPrivate *priv = layout->priv; - - if (priv->freeze_count) - return; - - gtk_widget_queue_allocate (GTK_WIDGET (layout)); + gtk_widget_queue_allocate (layout); } diff --git a/gtk/gtklayout.h b/gtk/gtklayout.h index dfc5b777dd..272a02521f 100644 --- a/gtk/gtklayout.h +++ b/gtk/gtklayout.h @@ -48,15 +48,11 @@ G_BEGIN_DECLS typedef struct _GtkLayout GtkLayout; -typedef struct _GtkLayoutPrivate GtkLayoutPrivate; typedef struct _GtkLayoutClass GtkLayoutClass; struct _GtkLayout { - GtkContainer container; - - /*< private >*/ - GtkLayoutPrivate *priv; + GtkContainer parent_instance; }; struct _GtkLayoutClass diff --git a/gtk/gtklinkbutton.c b/gtk/gtklinkbutton.c index 51d7c58b43..ee5468aa55 100644 --- a/gtk/gtklinkbutton.c +++ b/gtk/gtklinkbutton.c @@ -107,7 +107,7 @@ static void gtk_link_button_set_property (GObject *object, static void gtk_link_button_clicked (GtkButton *button); static gboolean gtk_link_button_popup_menu (GtkWidget *widget); static void gtk_link_button_drag_data_get_cb (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection, gpointer user_data); static gboolean gtk_link_button_query_tooltip_cb (GtkWidget *widget, @@ -433,7 +433,7 @@ gtk_link_button_popup_menu (GtkWidget *widget) static void gtk_link_button_drag_data_get_cb (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection, gpointer user_data) { diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index 0f3639d139..56ab6167d1 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -152,6 +152,11 @@ typedef struct { #define N_DEBUG_DISPLAYS 4 DisplayDebugFlags debug_flags[N_DEBUG_DISPLAYS]; +/* This is a flag to speed up development builds. We set it to TRUE when + * any of the debug displays has debug flags >0, but we never set it back + * to FALSE. This way we don't need to call gtk_widget_get_display() in + * hot paths. */ +gboolean any_display_debug_flags_set = FALSE; #ifdef G_ENABLE_DEBUG static const GDebugKey gtk_debug_keys[] = { @@ -603,6 +608,7 @@ do_pre_parse_initialization (void) debug_flags[0].flags = g_parse_debug_string (env_string, gtk_debug_keys, G_N_ELEMENTS (gtk_debug_keys)); + any_display_debug_flags_set = debug_flags[0].flags > 0; env_string = NULL; } #endif /* G_ENABLE_DEBUG */ @@ -688,6 +694,12 @@ gtk_get_display_debug_flags (GdkDisplay *display) return 0; } +gboolean +gtk_get_any_display_debug_flag_set (void) +{ + return any_display_debug_flags_set; +} + void gtk_set_display_debug_flags (GdkDisplay *display, guint flags) @@ -702,6 +714,9 @@ gtk_set_display_debug_flags (GdkDisplay *display, if (debug_flags[i].display == display) { debug_flags[i].flags = flags; + if (flags > 0) + any_display_debug_flags_set = TRUE; + return; } } @@ -809,7 +824,7 @@ gtk_init_check (void) * your program to fall back to a textual interface you want to * call gtk_init_check() instead. * - * Since 2.18, GTK+ calls `signal (SIGPIPE, SIG_IGN)` + * GTK+ calls `signal (SIGPIPE, SIG_IGN)` * during initialization, to ignore SIGPIPE signals, since these are * almost never wanted in graphical applications. If you do need to * handle SIGPIPE for some reason, reset the handler after gtk_init(), @@ -1747,19 +1762,6 @@ gtk_main_do_event (GdkEvent *event) if (!grab_widget) grab_widget = gtk_window_group_get_current_grab (window_group); - if (GTK_IS_WINDOW (event_widget) || - (grab_widget && grab_widget != event_widget && - !gtk_widget_is_ancestor (event_widget, grab_widget))) - { - /* Ignore event if we got a grab on another toplevel */ - if (!grab_widget || - gtk_widget_get_toplevel (event_widget) == gtk_widget_get_toplevel (grab_widget)) - { - if (_gtk_window_check_handle_wm_event (event)) - goto cleanup; - } - } - /* If the grab widget is an ancestor of the event widget * then we send the event to the original event widget. * This is the key to implementing modality. @@ -1801,9 +1803,13 @@ gtk_main_do_event (GdkEvent *event) case GDK_DELETE: g_object_ref (event_widget); - if ((!gtk_window_group_get_current_grab (window_group) || gtk_widget_get_toplevel (gtk_window_group_get_current_grab (window_group)) == event_widget) && - !gtk_widget_event (event_widget, event)) - gtk_widget_destroy (event_widget); + if (!gtk_window_group_get_current_grab (window_group) || + gtk_widget_get_toplevel (gtk_window_group_get_current_grab (window_group)) == event_widget) + { + if (!GTK_IS_WINDOW (event_widget) || + !gtk_window_emit_close_request (GTK_WINDOW (event_widget))) + gtk_widget_destroy (event_widget); + } g_object_unref (event_widget); break; @@ -1826,9 +1832,31 @@ gtk_main_do_event (GdkEvent *event) gtk_widget_render (event_widget, event->any.surface, event->expose.region); break; - case GDK_FOCUS_CHANGE: - case GDK_CONFIGURE: case GDK_MAP: + if (GTK_IS_WINDOW (event_widget) && !_gtk_widget_get_mapped (event_widget)) + { + /* we should be be unmapped, but are getting a MapEvent, this may happen + * to toplevel XWindows if mapping was intercepted by a window manager + * and an unmap request occurred while the MapRequestEvent was still + * being handled. we work around this situation here by re-requesting + * the window being unmapped. more details can be found in: + * http://bugzilla.gnome.org/show_bug.cgi?id=316180 + */ + gdk_surface_hide (_gtk_widget_get_surface (event_widget)); + } + break; + + case GDK_CONFIGURE: + if (GTK_IS_WINDOW (event_widget) && + _gtk_widget_get_surface (event_widget) == event->any.surface) + { + gtk_window_configure (GTK_WINDOW (event_widget), + event->configure.width, + event->configure.height); + } + + break; + case GDK_FOCUS_CHANGE: case GDK_UNMAP: case GDK_GRAB_BROKEN: if (!_gtk_widget_captured_event (event_widget, event)) diff --git a/gtk/gtkmediastream.c b/gtk/gtkmediastream.c index 569b4b9ce3..86f5c72cc5 100644 --- a/gtk/gtkmediastream.c +++ b/gtk/gtkmediastream.c @@ -651,7 +651,7 @@ gtk_media_stream_get_timestamp (GtkMediaStream *self) /** * gtk_media_stream_get_duration: - * @self: a #GtkmediaStream + * @self: a #GtkMediaStream * * Gets the duration of the stream. If the duration is not known, * 0 will be returned. diff --git a/gtk/gtkmenushell.c b/gtk/gtkmenushell.c index 8873345ffa..f9c497b8e5 100644 --- a/gtk/gtkmenushell.c +++ b/gtk/gtkmenushell.c @@ -76,6 +76,7 @@ #include "gtkwindow.h" #include "gtkwindowprivate.h" #include "gtkeventcontrollerkey.h" +#include "gtkgesturemultipress.h" #include "a11y/gtkmenushellaccessible.h" @@ -124,8 +125,20 @@ static gboolean gtk_menu_shell_key_press (GtkEventControllerKey *key, GtkWidget *widget); static void gtk_menu_shell_display_changed (GtkWidget *widget, GdkDisplay *previous_display); -static gboolean gtk_menu_shell_event (GtkWidget *widget, - GdkEvent *event); +static void multi_press_pressed (GtkGestureMultiPress *gesture, + gint n_press, + gdouble x, + gdouble y, + GtkMenuShell *menu_shell); +static void multi_press_released (GtkGestureMultiPress *gesture, + gint n_press, + gdouble x, + gdouble y, + GtkMenuShell *menu_shell); +static void multi_press_stopped (GtkGestureMultiPress *gesture, + GtkMenuShell *menu_shell); + + static void gtk_menu_shell_add (GtkContainer *container, GtkWidget *widget); static void gtk_menu_shell_remove (GtkContainer *container, @@ -180,7 +193,6 @@ gtk_menu_shell_class_init (GtkMenuShellClass *klass) object_class->finalize = gtk_menu_shell_finalize; object_class->dispose = gtk_menu_shell_dispose; - widget_class->event = gtk_menu_shell_event; widget_class->display_changed = gtk_menu_shell_display_changed; container_class->add = gtk_menu_shell_add; @@ -422,6 +434,15 @@ gtk_menu_shell_init (GtkMenuShell *menu_shell) gtk_widget_add_controller (widget, controller); gtk_widget_set_has_surface (widget, FALSE); + + controller = GTK_EVENT_CONTROLLER (gtk_gesture_multi_press_new ()); + g_signal_connect (controller, "pressed", + G_CALLBACK (multi_press_pressed), menu_shell); + g_signal_connect (controller, "released", + G_CALLBACK (multi_press_released), menu_shell); + g_signal_connect (controller, "stopped", + G_CALLBACK (multi_press_stopped), menu_shell); + gtk_widget_add_controller (widget, controller); } static void @@ -605,217 +626,238 @@ gtk_menu_shell_get_toplevel_shell (GtkMenuShell *menu_shell) return menu_shell; } -static gboolean -gtk_menu_shell_event (GtkWidget *widget, - GdkEvent *event) +static void +multi_press_stopped (GtkGestureMultiPress *gesture, + GtkMenuShell *menu_shell) { - GtkMenuShell *menu_shell = GTK_MENU_SHELL (widget); GtkMenuShellPrivate *priv = menu_shell->priv; GdkSurface *surface; + GdkEvent *event; - if (gdk_event_get_event_type (event) == GDK_GRAB_BROKEN) - { - gdk_event_get_grab_surface (event, &surface); + event = gtk_get_current_event (); + if (!event) + return; + if (gdk_event_get_grab_surface (event, &surface)) + { if (priv->have_xgrab && surface == NULL) { /* Unset the active menu item so gtk_menu_popdown() doesn't see it. */ gtk_menu_shell_deselect (menu_shell); gtk_menu_shell_deactivate_and_emit_done (menu_shell); } - - return GDK_EVENT_STOP; } - else if (gdk_event_get_event_type (event) == GDK_BUTTON_PRESS) - { - GtkWidget *menu_item; - menu_item = gtk_get_event_target_with_type (event, GTK_TYPE_MENU_ITEM); + g_object_unref (event); +} - if (menu_item && - _gtk_menu_item_is_selectable (menu_item) && - gtk_widget_get_parent (menu_item) == widget) - { - if (menu_item != menu_shell->priv->active_menu_item) - { - /* select the menu item *before* activating the shell, so submenus - * which might be open are closed the friendly way. If we activate - * (and thus grab) this menu shell first, we might get grab_broken - * events which will close the entire menu hierarchy. Selecting the - * menu item also fixes up the state as if enter_notify() would - * have run before (which normally selects the item). - */ - if (GTK_MENU_SHELL_GET_CLASS (menu_shell)->submenu_placement != GTK_TOP_BOTTOM) - gtk_menu_shell_select_item (menu_shell, menu_item); - } +static void +multi_press_pressed (GtkGestureMultiPress *gesture, + gint n_press, + gdouble x, + gdouble y, + GtkMenuShell *menu_shell) +{ + GtkMenuShellPrivate *priv = menu_shell->priv; + GtkWidget *menu_item; + GdkEvent *event; - if (GTK_MENU_ITEM (menu_item)->priv->submenu != NULL && - !gtk_widget_get_visible (GTK_MENU_ITEM (menu_item)->priv->submenu)) - { - _gtk_menu_item_popup_submenu (menu_item, FALSE); - priv->activated_submenu = TRUE; - } + event = gtk_get_current_event (); + menu_item = gtk_get_event_target_with_type (event, GTK_TYPE_MENU_ITEM); + + if (menu_item && + _gtk_menu_item_is_selectable (menu_item) && + gtk_widget_get_parent (menu_item) == GTK_WIDGET (menu_shell)) + { + if (menu_item != menu_shell->priv->active_menu_item) + { + /* select the menu item *before* activating the shell, so submenus + * which might be open are closed the friendly way. If we activate + * (and thus grab) this menu shell first, we might get grab_broken + * events which will close the entire menu hierarchy. Selecting the + * menu item also fixes up the state as if enter_notify() would + * have run before (which normally selects the item). + */ + if (GTK_MENU_SHELL_GET_CLASS (menu_shell)->submenu_placement != GTK_TOP_BOTTOM) + gtk_menu_shell_select_item (menu_shell, menu_item); } - if (!priv->active || !priv->button) + if (GTK_MENU_ITEM (menu_item)->priv->submenu != NULL && + !gtk_widget_get_visible (GTK_MENU_ITEM (menu_item)->priv->submenu)) { - gboolean initially_active = priv->active; - guint button; - guint32 time; + _gtk_menu_item_popup_submenu (menu_item, FALSE); + priv->activated_submenu = TRUE; + } + } + + if (!priv->active || !priv->button) + { + gboolean initially_active = priv->active; + guint button; + guint32 time; - gdk_event_get_button (event, &button); - time = gdk_event_get_time (event); + button = gtk_gesture_single_get_current_button (GTK_GESTURE_SINGLE (gesture)); + time = gdk_event_get_time (event); - priv->button = button; + priv->button = button; - if (menu_item) + if (menu_item) + { + if (_gtk_menu_item_is_selectable (menu_item) && + gtk_widget_get_parent (menu_item) == GTK_WIDGET (menu_shell) && + menu_item != priv->active_menu_item) { - if (_gtk_menu_item_is_selectable (menu_item) && - gtk_widget_get_parent (menu_item) == widget && - menu_item != priv->active_menu_item) - { - gtk_menu_shell_activate (menu_shell); + gtk_menu_shell_activate (menu_shell); - if (GTK_MENU_SHELL_GET_CLASS (menu_shell)->submenu_placement == GTK_TOP_BOTTOM) - { - priv->activate_time = time; - gtk_menu_shell_select_item (menu_shell, menu_item); - } + if (GTK_MENU_SHELL_GET_CLASS (menu_shell)->submenu_placement == GTK_TOP_BOTTOM) + { + priv->activate_time = time; + gtk_menu_shell_select_item (menu_shell, menu_item); } } - else if (!initially_active) - { - gtk_menu_shell_deactivate (menu_shell); - return GDK_EVENT_STOP; - } } + else if (!initially_active) + { + gtk_menu_shell_deactivate (menu_shell); + gtk_gesture_set_state (GTK_GESTURE (gesture), + GTK_EVENT_SEQUENCE_CLAIMED); + } + } + + g_object_unref (event); +} + +static void +multi_press_released (GtkGestureMultiPress *gesture, + gint n_press, + gdouble x, + gdouble y, + GtkMenuShell *menu_shell) +{ + GtkMenuShellPrivate *priv = menu_shell->priv; + GtkMenuShell *parent_shell = GTK_MENU_SHELL (priv->parent_menu_shell); + gboolean activated_submenu = FALSE; + guint new_button; + guint32 time; + GdkEvent *event; + + event = gtk_get_current_event (); + new_button = gtk_gesture_single_get_current_button (GTK_GESTURE_SINGLE (gesture)); + time = gdk_event_get_time (event); - return GDK_EVENT_PROPAGATE; + gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED); + + if (parent_shell) + { + /* If a submenu was just activated, it is its shell which is receiving + * the button release event. In this case, we must check the parent + * shell to know about the submenu state. + */ + activated_submenu = parent_shell->priv->activated_submenu; + parent_shell->priv->activated_submenu = FALSE; } - else if (gdk_event_get_event_type (event) == GDK_BUTTON_RELEASE) + + if (priv->parent_menu_shell && + (time - GTK_MENU_SHELL (priv->parent_menu_shell)->priv->activate_time) < MENU_SHELL_TIMEOUT) { - GtkMenuShell *parent_shell = GTK_MENU_SHELL (priv->parent_menu_shell); - gboolean activated_submenu = FALSE; - guint new_button; - guint32 time; + /* The button-press originated in the parent menu bar and we are + * a pop-up menu. It was a quick press-and-release so we don't want + * to activate an item but we leave the popup in place instead. + * https://bugzilla.gnome.org/show_bug.cgi?id=703069 + */ + GTK_MENU_SHELL (priv->parent_menu_shell)->priv->activate_time = 0; + return; + } - gdk_event_get_button (event, &new_button); - time = gdk_event_get_time (event); + if (priv->active) + { + GtkWidget *menu_item; + guint button = priv->button; - if (parent_shell) + priv->button = 0; + + if (button && (new_button != button) && priv->parent_menu_shell) { - /* If a submenu was just activated, it is its shell which is receiving - * the button release event. In this case, we must check the parent - * shell to know about the submenu state. - */ - activated_submenu = parent_shell->priv->activated_submenu; - parent_shell->priv->activated_submenu = FALSE; + gtk_menu_shell_deactivate_and_emit_done (gtk_menu_shell_get_toplevel_shell (menu_shell)); + return; } - if (priv->parent_menu_shell && - (time - GTK_MENU_SHELL (priv->parent_menu_shell)->priv->activate_time) < MENU_SHELL_TIMEOUT) + if ((time - priv->activate_time) <= MENU_SHELL_TIMEOUT) { - /* The button-press originated in the parent menu bar and we are - * a pop-up menu. It was a quick press-and-release so we don't want - * to activate an item but we leave the popup in place instead. - * https://bugzilla.gnome.org/show_bug.cgi?id=703069 + /* We only ever want to prevent deactivation on the first + * press/release. Setting the time to zero is a bit of a + * hack, since we could be being triggered in the first + * few fractions of a second after a server time wraparound. + * the chances of that happening are ~1/10^6, without + * serious harm if we lose. */ - GTK_MENU_SHELL (priv->parent_menu_shell)->priv->activate_time = 0; - return GDK_EVENT_STOP; + priv->activate_time = 0; + return; } - if (priv->active) + menu_item = gtk_get_event_target_with_type (event, GTK_TYPE_MENU_ITEM); + + if (menu_item) { - GtkWidget *menu_item; - guint button = priv->button; + GtkWidget *submenu = GTK_MENU_ITEM (menu_item)->priv->submenu; + GtkWidget *parent_menu_item_shell = gtk_widget_get_parent (menu_item); - priv->button = 0; + if (!_gtk_menu_item_is_selectable (GTK_WIDGET (menu_item))) + return; - if (button && (new_button != button) && priv->parent_menu_shell) + if (submenu == NULL) { - gtk_menu_shell_deactivate_and_emit_done (gtk_menu_shell_get_toplevel_shell (menu_shell)); - return GDK_EVENT_STOP; + gtk_menu_shell_activate_item (menu_shell, GTK_WIDGET (menu_item), TRUE); + return; } - - if ((time - priv->activate_time) <= MENU_SHELL_TIMEOUT) + else if (GTK_MENU_SHELL (parent_menu_item_shell)->priv->parent_menu_shell && + (activated_submenu || + GTK_MENU_SHELL_GET_CLASS (menu_shell)->submenu_placement != GTK_TOP_BOTTOM)) { - /* We only ever want to prevent deactivation on the first - * press/release. Setting the time to zero is a bit of a - * hack, since we could be being triggered in the first - * few fractions of a second after a server time wraparound. - * the chances of that happening are ~1/10^6, without - * serious harm if we lose. - */ - priv->activate_time = 0; - return GDK_EVENT_STOP; - } + GTimeVal *popup_time; + gint64 usec_since_popup = 0; - menu_item = gtk_get_event_target_with_type (event, GTK_TYPE_MENU_ITEM); + popup_time = g_object_get_data (G_OBJECT (menu_shell), + "gtk-menu-exact-popup-time"); + if (popup_time) + { + GTimeVal current_time; - if (menu_item) - { - GtkWidget *submenu = GTK_MENU_ITEM (menu_item)->priv->submenu; - GtkWidget *parent_menu_item_shell = gtk_widget_get_parent (menu_item); + g_get_current_time (¤t_time); - if (!_gtk_menu_item_is_selectable (GTK_WIDGET (menu_item))) - return GDK_EVENT_STOP; + usec_since_popup = ((gint64) current_time.tv_sec * 1000 * 1000 + + (gint64) current_time.tv_usec - + (gint64) popup_time->tv_sec * 1000 * 1000 - + (gint64) popup_time->tv_usec); + + g_object_set_data (G_OBJECT (menu_shell), + "gtk-menu-exact-popup-time", NULL); + } - if (submenu == NULL) + /* Only close the submenu on click if we opened the + * menu explicitly (usec_since_popup == 0) or + * enough time has passed since it was opened by + * GtkMenuItem's timeout (usec_since_popup > delay). + */ + if (!activated_submenu && + (usec_since_popup == 0 || + usec_since_popup > MENU_POPDOWN_DELAY * 1000)) { - gtk_menu_shell_activate_item (menu_shell, GTK_WIDGET (menu_item), TRUE); - return GDK_EVENT_STOP; + _gtk_menu_item_popdown_submenu (menu_item); } - else if (GTK_MENU_SHELL (parent_menu_item_shell)->priv->parent_menu_shell && - (activated_submenu || - GTK_MENU_SHELL_GET_CLASS (menu_shell)->submenu_placement != GTK_TOP_BOTTOM)) + else { - GTimeVal *popup_time; - gint64 usec_since_popup = 0; - - popup_time = g_object_get_data (G_OBJECT (menu_shell), - "gtk-menu-exact-popup-time"); - if (popup_time) - { - GTimeVal current_time; - - g_get_current_time (¤t_time); - - usec_since_popup = ((gint64) current_time.tv_sec * 1000 * 1000 + - (gint64) current_time.tv_usec - - (gint64) popup_time->tv_sec * 1000 * 1000 - - (gint64) popup_time->tv_usec); - - g_object_set_data (G_OBJECT (menu_shell), - "gtk-menu-exact-popup-time", NULL); - } - - /* Only close the submenu on click if we opened the - * menu explicitly (usec_since_popup == 0) or - * enough time has passed since it was opened by - * GtkMenuItem's timeout (usec_since_popup > delay). - */ - if (!activated_submenu && - (usec_since_popup == 0 || - usec_since_popup > MENU_POPDOWN_DELAY * 1000)) - { - _gtk_menu_item_popdown_submenu (menu_item); - } - else - { - gtk_menu_item_select (GTK_MENU_ITEM (menu_item)); - } - - return GDK_EVENT_STOP; + gtk_menu_item_select (GTK_MENU_ITEM (menu_item)); } - } - gtk_menu_shell_deactivate_and_emit_done (gtk_menu_shell_get_toplevel_shell (menu_shell)); + return; + } } - return GDK_EVENT_STOP; + gtk_menu_shell_deactivate_and_emit_done (gtk_menu_shell_get_toplevel_shell (menu_shell)); } - return GDK_EVENT_PROPAGATE; + g_object_unref (event); } void diff --git a/gtk/gtkmodelbutton.c b/gtk/gtkmodelbutton.c index 467928a083..0b4fbf625d 100644 --- a/gtk/gtkmodelbutton.c +++ b/gtk/gtkmodelbutton.c @@ -171,6 +171,7 @@ enum PROP_ROLE, PROP_ICON, PROP_TEXT, + PROP_USE_MARKUP, PROP_ACTIVE, PROP_MENU_NAME, PROP_INVERTED, @@ -390,6 +391,19 @@ gtk_model_button_set_text (GtkModelButton *button, } static void +gtk_model_button_set_use_markup (GtkModelButton *button, + gboolean use_markup) +{ + use_markup = !!use_markup; + if (gtk_label_get_use_markup (GTK_LABEL (button->label)) == use_markup) + return; + + gtk_label_set_use_markup (GTK_LABEL (button->label), use_markup); + update_visibility (button); + g_object_notify_by_pspec (G_OBJECT (button), properties[PROP_USE_MARKUP]); +} + +static void gtk_model_button_set_active (GtkModelButton *button, gboolean active) { @@ -507,6 +521,10 @@ gtk_model_button_get_property (GObject *object, g_value_set_string (value, gtk_label_get_text (GTK_LABEL (button->label))); break; + case PROP_USE_MARKUP: + g_value_set_boolean (value, gtk_label_get_use_markup (GTK_LABEL (button->label))); + break; + case PROP_ACTIVE: g_value_set_boolean (value, button->active); break; @@ -555,6 +573,10 @@ gtk_model_button_set_property (GObject *object, gtk_model_button_set_text (button, g_value_get_string (value)); break; + case PROP_USE_MARKUP: + gtk_model_button_set_use_markup (button, g_value_get_boolean (value)); + break; + case PROP_ACTIVE: gtk_model_button_set_active (button, g_value_get_boolean (value)); break; @@ -957,6 +979,20 @@ gtk_model_button_class_init (GtkModelButtonClass *class) G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS); /** + * GtkModelButton:use-markup: + * + * If %TRUE, XML tags in the text of the button are interpreted as by + * pango_parse_markup() to format the enclosed spans of text. If %FALSE, the + * text will be displayed verbatim. + */ + properties[PROP_USE_MARKUP] = + g_param_spec_boolean ("use-markup", + P_("Use markup"), + P_("The text of the button includes XML markup. See pango_parse_markup()"), + FALSE, + G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS); + + /** * GtkModelButton:active: * * The state of the button. This is reflecting the state of the associated diff --git a/gtk/gtknativedialog.c b/gtk/gtknativedialog.c index 931e2a0c90..ffe783c99f 100644 --- a/gtk/gtknativedialog.c +++ b/gtk/gtknativedialog.c @@ -575,7 +575,7 @@ run_response_cb (GtkNativeDialog *self, * modal dialog (it prevents the user from interacting with other * windows in the same window group while the dialog is run), callbacks * such as timeouts, IO channel watches, DND drops, etc, will - * be triggered during a gtk_nautilus_dialog_run() call. + * be triggered during a gtk_native_dialog_run() call. * * Returns: response ID **/ diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c index a51110d9ed..c371de0128 100644 --- a/gtk/gtknotebook.c +++ b/gtk/gtknotebook.c @@ -383,11 +383,11 @@ static gboolean gtk_notebook_focus (GtkWidget *widget, /*** Drag and drop Methods ***/ static void gtk_notebook_drag_begin (GtkWidget *widget, - GdkDragContext *context); + GdkDrag *drag); static void gtk_notebook_drag_end (GtkWidget *widget, - GdkDragContext *context); + GdkDrag *drag); static gboolean gtk_notebook_drag_failed (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkDragResult result); static gboolean gtk_notebook_drag_motion (GtkWidget *widget, GdkDrop *drop, @@ -400,7 +400,7 @@ static gboolean gtk_notebook_drag_drop (GtkWidget *widget, gint x, gint y); static void gtk_notebook_drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *data); static void gtk_notebook_drag_data_received (GtkWidget *widget, GdkDrop *drop, @@ -2864,7 +2864,7 @@ update_arrow_nodes (GtkNotebook *notebook) static void gtk_notebook_drag_begin (GtkWidget *widget, - GdkDragContext *context) + GdkDrag *drag) { GtkNotebook *notebook = GTK_NOTEBOOK (widget); GtkNotebookPrivate *priv = notebook->priv; @@ -2895,14 +2895,14 @@ gtk_notebook_drag_begin (GtkWidget *widget, gtk_style_context_add_class (gtk_widget_get_style_context (priv->dnd_child), "background"); - gtk_drag_set_icon_widget (context, tab_label, -2, -2); - g_object_set_data (G_OBJECT (priv->dnd_child), "drag-context", context); + gtk_drag_set_icon_widget (drag, tab_label, -2, -2); + g_object_set_data (G_OBJECT (priv->dnd_child), "drag-context", drag); g_object_unref (tab_label); } static void gtk_notebook_drag_end (GtkWidget *widget, - GdkDragContext *context) + GdkDrag *drag) { GtkNotebook *notebook = GTK_NOTEBOOK (widget); GtkNotebookPrivate *priv = notebook->priv; @@ -2914,7 +2914,7 @@ gtk_notebook_drag_end (GtkWidget *widget, GtkNotebook *dest_notebook = NULL; gint x, y; - gdk_device_get_position (gdk_drag_context_get_device (context), &x, &y); + gdk_device_get_position (gdk_drag_get_device (drag), &x, &y); g_signal_emit (notebook, notebook_signals[CREATE_WINDOW], 0, priv->detached_tab->child, x, y, &dest_notebook); @@ -2950,7 +2950,7 @@ gtk_notebook_create_window (GtkNotebook *notebook, static gboolean gtk_notebook_drag_failed (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkDragResult result) { GtkNotebook *notebook = GTK_NOTEBOOK (widget); @@ -2963,7 +2963,7 @@ gtk_notebook_drag_failed (GtkWidget *widget, GtkNotebook *dest_notebook = NULL; gint x, y; - gdk_device_get_position (gdk_drag_context_get_device (context), &x, &y); + gdk_device_get_position (gdk_drag_get_device (drag), &x, &y); g_signal_emit (notebook, notebook_signals[CREATE_WINDOW], 0, priv->detached_tab->child, x, y, &dest_notebook); @@ -3200,7 +3200,7 @@ do_detach_tab (GtkNotebook *from, static void gtk_notebook_drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *data) { GtkNotebook *notebook = GTK_NOTEBOOK (widget); @@ -3230,7 +3230,7 @@ gtk_notebook_drag_data_received (GtkWidget *widget, GtkSelectionData *data) { GtkNotebook *notebook; - GdkDragContext *drag; + GdkDrag *drag; GtkWidget *source_widget; GtkWidget **child; @@ -4162,10 +4162,10 @@ gtk_notebook_real_remove (GtkNotebook *notebook, if (priv->operation == DRAG_OPERATION_DETACH && !priv->remove_in_detach) { - GdkDragContext *context; + GdkDrag *drag; - context = (GdkDragContext *)g_object_get_data (G_OBJECT (priv->dnd_child), "drag-context"); - gtk_drag_cancel (context); + drag = (GdkDrag *)g_object_get_data (G_OBJECT (priv->dnd_child), "drag-context"); + gtk_drag_cancel (drag); } } if (priv->switch_tab == list) @@ -7038,7 +7038,7 @@ gtk_notebook_get_tab_detachable (GtkNotebook *notebook, * |[<!-- language="C" --> * static void * on_drag_data_received (GtkWidget *widget, - * GdkDragContext *context, + * GdkDrag *drag, * GtkSelectionData *data, * guint time, * gpointer user_data) @@ -7046,7 +7046,7 @@ gtk_notebook_get_tab_detachable (GtkNotebook *notebook, * GtkWidget *notebook; * GtkWidget **child; * - * notebook = gtk_drag_get_source_widget (context); + * notebook = gtk_drag_get_source_widget (drag); * child = (void*) gtk_selection_data_get_data (data); * * // process_widget (*child); diff --git a/gtk/gtkpathbar.c b/gtk/gtkpathbar.c index 9a2b5556e6..eeaf6e4326 100644 --- a/gtk/gtkpathbar.c +++ b/gtk/gtkpathbar.c @@ -1283,7 +1283,7 @@ find_button_type (GtkPathBar *path_bar, static void button_drag_data_get_cb (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data, gpointer data) { diff --git a/gtk/gtkpicture.c b/gtk/gtkpicture.c index a33f365c1c..887ac7acf9 100644 --- a/gtk/gtkpicture.c +++ b/gtk/gtkpicture.c @@ -50,13 +50,13 @@ * “broken image” icon similar to that used in many web browsers. * If you want to handle errors in loading the file yourself, * for example by displaying an error message, then load the image with - * gdk_texture_new_for_file(), then create the #GtkPicture with + * gdk_texture_new_from_file(), then create the #GtkPicture with * gtk_picture_new_for_paintable(). * * Sometimes an application will want to avoid depending on external data * files, such as image files. See the documentation of #GResource for details. - * In this case, the #GtkPicture:resource property, gtk_picture_new_for_resource() and - * gtk_picture_set_resource() should be used. + * In this case, gtk_picture_new_for_resource() and gtk_picture_set_resource() + * should be used. * * # CSS nodes * diff --git a/gtk/gtkplacessidebar.c b/gtk/gtkplacessidebar.c index b13b8dad16..5ec8408ee9 100644 --- a/gtk/gtkplacessidebar.c +++ b/gtk/gtkplacessidebar.c @@ -63,6 +63,8 @@ #include "gtkmodelbutton.h" #include "gtkprivate.h" #include "gtkeventcontrollerkey.h" +#include "gtkgesturemultipress.h" +#include "gtkgesturedrag.h" /*< private > * SECTION:gtkplacessidebar @@ -153,8 +155,6 @@ struct _GtkPlacesSidebar { gint drag_row_height; gint drag_row_x; gint drag_row_y; - gint drag_x; - gint drag_y; GtkWidget *row_placeholder; DropState drop_state; @@ -203,7 +203,7 @@ struct _GtkPlacesSidebarClass { const gchar *primary, const gchar *secondary); GdkDragAction (* drag_action_requested) (GtkPlacesSidebar *sidebar, - GdkDragContext *context, + GdkDrag *drag, GFile *dest_file, GList *source_file_list); GdkDragAction (* drag_action_ask) (GtkPlacesSidebar *sidebar, @@ -285,9 +285,21 @@ static void check_unmount_and_eject (GMount *mount, GDrive *drive, gboolean *show_unmount, gboolean *show_eject); -static gboolean on_row_event (GtkWidget *widget, - GdkEvent *event, - GtkSidebarRow *sidebar); +static void on_row_pressed (GtkGestureMultiPress *gesture, + gint n_press, + gdouble x, + gdouble y, + GtkSidebarRow *row); +static void on_row_released (GtkGestureMultiPress *gesture, + gint n_press, + gdouble x, + gdouble y, + GtkSidebarRow *row); +static void on_row_dragged (GtkGestureDrag *gesture, + gdouble x, + gdouble y, + GtkSidebarRow *row); + static void popup_menu_cb (GtkSidebarRow *row); static void long_press_cb (GtkGesture *gesture, gdouble x, @@ -464,6 +476,7 @@ add_place (GtkPlacesSidebar *sidebar, gboolean show_eject_button; GtkWidget *row; GtkWidget *eject_button; + GtkGesture *gesture; check_unmount_and_eject (mount, volume, drive, &show_unmount, &show_eject); @@ -496,8 +509,19 @@ add_place (GtkPlacesSidebar *sidebar, g_signal_connect_swapped (eject_button, "clicked", G_CALLBACK (eject_or_unmount_bookmark), row); - g_signal_connect (GTK_SIDEBAR_ROW (row), "event", - G_CALLBACK (on_row_event), row); + + gesture = gtk_gesture_multi_press_new (); + gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), 0); + g_signal_connect (gesture, "pressed", + G_CALLBACK (on_row_pressed), row); + g_signal_connect (gesture, "released", + G_CALLBACK (on_row_released), row); + gtk_widget_add_controller (row, GTK_EVENT_CONTROLLER (gesture)); + + gesture = gtk_gesture_drag_new (); + g_signal_connect (gesture, "drag-update", + G_CALLBACK (on_row_dragged), row); + gtk_widget_add_controller (row, GTK_EVENT_CONTROLLER (gesture)); gtk_container_add (GTK_CONTAINER (sidebar->list_box), GTK_WIDGET (row)); @@ -1696,45 +1720,9 @@ stop_drop_feedback (GtkPlacesSidebar *sidebar) sidebar->drag_data_info = DND_UNKNOWN; } -static gboolean -sidebar_event_cb (GtkWidget *widget, - GdkEvent *event, - gpointer user_data) -{ - GtkPlacesSidebar *sidebar = GTK_PLACES_SIDEBAR (user_data); - guint state; - double x, y; - - if (gdk_event_get_event_type (event) != GDK_MOTION_NOTIFY) - return GDK_EVENT_PROPAGATE; - - if (sidebar->drag_row == NULL || sidebar->dragging_over) - return GDK_EVENT_PROPAGATE; - - if (!gdk_event_get_state (event, &state) || - !(state & GDK_BUTTON1_MASK)) - return GDK_EVENT_PROPAGATE; - - gdk_event_get_coords ((GdkEvent *) event, &x, &y); - - if (gtk_drag_check_threshold (widget, - sidebar->drag_x, sidebar->drag_y, - x, y)) - { - sidebar->dragging_over = TRUE; - - gtk_drag_begin_with_coordinates (widget, - gdk_event_get_device ((GdkEvent*) event), - sidebar->source_targets, GDK_ACTION_MOVE, - sidebar->drag_x, sidebar->drag_y); - } - - return GDK_EVENT_PROPAGATE; -} - static void drag_begin_callback (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, gpointer user_data) { GtkPlacesSidebar *sidebar = GTK_PLACES_SIDEBAR (user_data); @@ -1750,7 +1738,7 @@ drag_begin_callback (GtkWidget *widget, gtk_widget_set_opacity (drag_widget, 0.8); - gtk_drag_set_icon_widget (context, + gtk_drag_set_icon_widget (drag, drag_widget, sidebar->drag_row_x, sidebar->drag_row_y); @@ -1963,7 +1951,7 @@ drop_files_as_bookmarks (GtkPlacesSidebar *sidebar, static void drag_data_get_callback (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *data, gpointer user_data) { @@ -2097,7 +2085,7 @@ out: static void drag_end_callback (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, gpointer user_data) { stop_drop_feedback (GTK_PLACES_SIDEBAR (user_data)); @@ -3706,15 +3694,44 @@ on_row_activated (GtkListBox *list_box, open_row (selected_row, 0); } -static gboolean -on_row_event (GtkWidget *widget, - GdkEvent *event, - GtkSidebarRow *row) +static void +on_row_pressed (GtkGestureMultiPress *gesture, + gint n_press, + gdouble x, + gdouble y, + GtkSidebarRow *row) +{ + GtkPlacesSidebar *sidebar; + GtkPlacesSidebarSectionType section_type; + GtkPlacesSidebarPlaceType row_type; + + g_object_get (row, + "sidebar", &sidebar, + "section_type", §ion_type, + "place-type", &row_type, + NULL); + + if (section_type == SECTION_BOOKMARKS) + { + sidebar->drag_row = GTK_WIDGET (row); + sidebar->drag_row_x = (gint)x; + sidebar->drag_row_y = (gint)y; + } + + g_object_unref (sidebar); +} + +static void +on_row_released (GtkGestureMultiPress *gesture, + gint n_press, + gdouble x, + gdouble y, + GtkSidebarRow *row) { GtkPlacesSidebar *sidebar; GtkPlacesSidebarSectionType section_type; GtkPlacesSidebarPlaceType row_type; - gdouble x, y; + guint button, state; g_object_get (row, "sidebar", &sidebar, @@ -3722,54 +3739,67 @@ on_row_event (GtkWidget *widget, "place-type", &row_type, NULL); - if (gdk_event_get_event_type (event) == GDK_BUTTON_PRESS) + button = gtk_gesture_single_get_current_button (GTK_GESTURE_SINGLE (gesture)); + gtk_get_current_event_state (&state); + + if (row) { - if (section_type == SECTION_BOOKMARKS) + if (button == 2) { - gdk_event_get_coords ((GdkEvent *) event, &x, &y); - sidebar->drag_row = GTK_WIDGET (row); - sidebar->drag_row_x = (gint)x; - sidebar->drag_row_y = (gint)y; + GtkPlacesOpenFlags open_flags = GTK_PLACES_OPEN_NORMAL; - sidebar->drag_x = x; - sidebar->drag_y = y; + open_flags = (state & GDK_CONTROL_MASK) ? + GTK_PLACES_OPEN_NEW_WINDOW : + GTK_PLACES_OPEN_NEW_TAB; + + open_row (GTK_SIDEBAR_ROW (row), open_flags); + gtk_gesture_set_state (GTK_GESTURE (gesture), + GTK_EVENT_SEQUENCE_CLAIMED); } + else if (button == 3) + { + if (row_type != PLACES_CONNECT_TO_SERVER) + show_row_popover (GTK_SIDEBAR_ROW (row)); + } + } +} + +static void +on_row_dragged (GtkGestureDrag *gesture, + gdouble x, + gdouble y, + GtkSidebarRow *row) +{ + GtkPlacesSidebar *sidebar; + + g_object_get (row, "sidebar", &sidebar, NULL); + if (sidebar->drag_row == NULL || sidebar->dragging_over) + { g_object_unref (sidebar); + return; } - else if (gdk_event_get_event_type (event) == GDK_BUTTON_RELEASE) - { - gboolean ret = FALSE; - guint button, state; - if (row && - gdk_event_get_button (event, &button) && - gdk_event_get_state (event, &state)) - { - if (button == 1) - ret = FALSE; - else if (button == 2) - { - GtkPlacesOpenFlags open_flags = GTK_PLACES_OPEN_NORMAL; + if (gtk_drag_check_threshold (GTK_WIDGET (row), 0, 0, x, y)) + { + gdouble start_x, start_y; + gint drag_x, drag_y; - open_flags = (state & GDK_CONTROL_MASK) ? - GTK_PLACES_OPEN_NEW_WINDOW : - GTK_PLACES_OPEN_NEW_TAB; + gtk_gesture_drag_get_start_point (gesture, &start_x, &start_y); + gtk_widget_translate_coordinates (GTK_WIDGET (row), + GTK_WIDGET (sidebar), + start_x, start_y, + &drag_x, &drag_y); - open_row (GTK_SIDEBAR_ROW (row), open_flags); - ret = TRUE; - } - else if (button == 3) - { - if (row_type != PLACES_CONNECT_TO_SERVER) - show_row_popover (GTK_SIDEBAR_ROW (row)); - } - } + sidebar->dragging_over = TRUE; - return ret; + gtk_drag_begin_with_coordinates (GTK_WIDGET (sidebar), + gtk_gesture_get_device (GTK_GESTURE (gesture)), + sidebar->source_targets, GDK_ACTION_MOVE, + drag_x, drag_y); } - return FALSE; + g_object_unref (sidebar); } static void @@ -4064,8 +4094,6 @@ gtk_places_sidebar_init (GtkPlacesSidebar *sidebar) sidebar->source_targets = gdk_content_formats_new (dnd_source_targets, G_N_ELEMENTS (dnd_source_targets)); sidebar->source_targets = gtk_content_formats_add_text_targets (sidebar->source_targets); - g_signal_connect (sidebar->list_box, "event", - G_CALLBACK (sidebar_event_cb), sidebar); g_signal_connect (sidebar->list_box, "drag-begin", G_CALLBACK (drag_begin_callback), sidebar); g_signal_connect (sidebar->list_box, "drag-motion", @@ -4420,7 +4448,7 @@ gtk_places_sidebar_class_init (GtkPlacesSidebarClass *class) * emitted) every time the user activates the contextual menu. * * Before 3.18, the @container always was a #GtkMenu, and you were expected - * to add your items as #GtkMenuItems. Since 3.18, the popup may be implemented + * to add your items as #GtkMenuItems. The popup may be implemented * as a #GtkPopover, in which case @container will be something else, e.g. a * #GtkBox, to which you may add #GtkModelButtons or other widgets, such as * #GtkEntries, #GtkSpinButtons, etc. If your application can deal with this diff --git a/gtk/gtkplacesview.c b/gtk/gtkplacesview.c index fd5968dff0..693a28e3b3 100644 --- a/gtk/gtkplacesview.c +++ b/gtk/gtkplacesview.c @@ -1816,7 +1816,6 @@ out: static void on_address_entry_show_help_pressed (GtkPlacesView *view, GtkEntryIconPosition icon_pos, - GdkEvent *event, GtkEntry *entry) { GtkPlacesViewPrivate *priv; diff --git a/gtk/gtkpopover.c b/gtk/gtkpopover.c index 4dbc6398db..3263f06775 100644 --- a/gtk/gtkpopover.c +++ b/gtk/gtkpopover.c @@ -131,6 +131,8 @@ #include "gtktypebuiltins.h" #include "gtkwidgetprivate.h" #include "gtkwindowprivate.h" +#include "gtkgesturemultipress.h" +#include "gtkeventcontrollerkey.h" #include "a11y/gtkpopoveraccessible.h" @@ -266,12 +268,87 @@ node_style_changed_cb (GtkCssNode *node, gtk_widget_queue_draw (widget); } +static gboolean +key_controller_key_pressed (GtkEventControllerKey *key, + guint keyval, + guint keycode, + GdkModifierType modifiers, + GtkPopover *popover) +{ + GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover); + GtkWidget *toplevel, *focus; + + if (keyval == GDK_KEY_Escape) + { + gtk_popover_popdown (popover); + return TRUE; + } + + if (priv->modal) + { + toplevel = gtk_widget_get_toplevel (GTK_WIDGET (popover)); + + if (GTK_IS_WINDOW (toplevel)) + { + focus = gtk_window_get_focus (GTK_WINDOW (toplevel)); + + if (focus && gtk_widget_is_ancestor (focus, GTK_WIDGET (popover))) + { + if (gtk_event_controller_key_forward (key, focus)) + return TRUE; + } + + /* Piggyback on the toplevel to have it handle key navigation */ + return gtk_event_controller_key_forward (key, toplevel); + } + } + + return FALSE; +} + +static void +gesture_pressed (GtkGestureMultiPress *gesture, + gint n_press, + gdouble x, + gdouble y, + GtkPopover *popover) +{ + GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover); + + priv->button_pressed = TRUE; +} + +static void +gesture_released (GtkGestureMultiPress *gesture, + gint n_press, + gdouble x, + gdouble y, + GtkPopover *popover) +{ + GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover); + GtkAllocation child_alloc; + GtkWidget *child; + + if (!priv->button_pressed) + return; + + child = gtk_bin_get_child (GTK_BIN (popover)); + gtk_widget_get_allocation (child, &child_alloc); + + if (x < child_alloc.x || + x > child_alloc.x + child_alloc.width || + y < child_alloc.y || + y > child_alloc.y + child_alloc.height) + gtk_popover_popdown (popover); +} + static void gtk_popover_init (GtkPopover *popover) { GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover); GtkWidget *widget; GtkStyleContext *context; + GtkEventController *controller; widget = GTK_WIDGET (popover); gtk_widget_set_has_surface (widget, TRUE); @@ -300,6 +377,18 @@ gtk_popover_init (GtkPopover *popover) context = gtk_widget_get_style_context (priv->contents_widget); gtk_style_context_add_class (context, GTK_STYLE_CLASS_BACKGROUND); + + controller = gtk_event_controller_key_new (); + g_signal_connect (controller, "key-pressed", + G_CALLBACK (key_controller_key_pressed), popover); + gtk_widget_add_controller (widget, controller); + + controller = GTK_EVENT_CONTROLLER (gtk_gesture_multi_press_new ()); + g_signal_connect (controller, "pressed", + G_CALLBACK (gesture_pressed), popover); + g_signal_connect (controller, "released", + G_CALLBACK (gesture_released), popover); + gtk_widget_add_controller (widget, controller); } static void @@ -1369,68 +1458,6 @@ gtk_popover_size_allocate (GtkWidget *widget, } } -static gboolean -gtk_popover_event (GtkWidget *widget, - GdkEvent *event) -{ - GtkPopover *popover = GTK_POPOVER (widget); - GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover); - - if (gdk_event_get_event_type (event) == GDK_KEY_PRESS) - { - GtkWidget *toplevel, *focus; - guint keyval; - - if (!gdk_event_get_keyval ((GdkEvent *) event, &keyval)) - return GDK_EVENT_PROPAGATE; - - if (keyval == GDK_KEY_Escape) - { - gtk_popover_popdown (GTK_POPOVER (widget)); - return GDK_EVENT_STOP; - } - - if (!priv->modal) - return GDK_EVENT_PROPAGATE; - - toplevel = gtk_widget_get_toplevel (widget); - - if (GTK_IS_WINDOW (toplevel)) - { - focus = gtk_window_get_focus (GTK_WINDOW (toplevel)); - - if (focus && gtk_widget_is_ancestor (focus, widget)) - return gtk_widget_event (focus, (GdkEvent*) event); - } - - return GDK_EVENT_PROPAGATE; - } - else if (gdk_event_get_event_type (event) == GDK_BUTTON_PRESS) - priv->button_pressed = TRUE; - else if (gdk_event_get_event_type (event) == GDK_BUTTON_RELEASE) - { - GtkAllocation child_alloc; - GtkWidget *child; - gdouble x, y; - - child = gtk_bin_get_child (GTK_BIN (widget)); - - if (!priv->button_pressed || - !gdk_event_get_coords (event, &x, &y)) - return GDK_EVENT_PROPAGATE; - - gtk_widget_get_allocation (child, &child_alloc); - - if (x < child_alloc.x || - x > child_alloc.x + child_alloc.width || - y < child_alloc.y || - y > child_alloc.y + child_alloc.height) - gtk_popover_popdown (popover); - } - - return GDK_EVENT_PROPAGATE; -} - static void gtk_popover_grab_focus (GtkWidget *widget) { @@ -1573,7 +1600,6 @@ gtk_popover_class_init (GtkPopoverClass *klass) widget_class->measure = gtk_popover_measure; widget_class->size_allocate = gtk_popover_size_allocate; widget_class->snapshot = gtk_popover_snapshot; - widget_class->event = gtk_popover_event; widget_class->grab_focus = gtk_popover_grab_focus; widget_class->focus = gtk_popover_focus; widget_class->show = gtk_popover_show; diff --git a/gtk/gtkprinter.h b/gtk/gtkprinter.h index a3e3eb54a3..b8bd1eb484 100644 --- a/gtk/gtkprinter.h +++ b/gtk/gtkprinter.h @@ -45,9 +45,9 @@ G_BEGIN_DECLS * the printer in Postscript format * @GTK_PRINT_CAPABILITY_PREVIEW: Print dialog will offer a preview * @GTK_PRINT_CAPABILITY_NUMBER_UP: Print dialog will offer printing multiple - * pages per sheet. Since 2.12 + * pages per sheet * @GTK_PRINT_CAPABILITY_NUMBER_UP_LAYOUT: Print dialog will allow to rearrange - * pages when printing multiple pages per sheet. Since 2.14 + * pages when printing multiple pages per sheet * * An enum for specifying which features the print dialog should offer. * If neither %GTK_PRINT_CAPABILITY_GENERATE_PDF nor @@ -164,6 +164,7 @@ gboolean gtk_printer_get_hard_margins (GtkPrinter *pr gdouble *bottom, gdouble *left, gdouble *right); +GDK_AVAILABLE_IN_ALL gboolean gtk_printer_get_hard_margins_for_paper_size (GtkPrinter *printer, GtkPaperSize *paper_size, gdouble *top, diff --git a/gtk/gtkprivate.h b/gtk/gtkprivate.h index 981e515010..3ecb4c36b7 100644 --- a/gtk/gtkprivate.h +++ b/gtk/gtkprivate.h @@ -120,10 +120,11 @@ gboolean gtk_simulate_touchscreen (void); void gtk_set_display_debug_flags (GdkDisplay *display, guint flags); guint gtk_get_display_debug_flags (GdkDisplay *display); +gboolean gtk_get_any_display_debug_flag_set (void); #ifdef G_ENABLE_DEBUG -#define GTK_DISPLAY_DEBUG_CHECK(display,type) G_UNLIKELY (gtk_get_display_debug_flags (display) & GTK_DEBUG_##type) +#define GTK_DISPLAY_DEBUG_CHECK(display,type) (gtk_get_any_display_debug_flag_set () && G_UNLIKELY (gtk_get_display_debug_flags (display) & GTK_DEBUG_##type)) #define GTK_DISPLAY_NOTE(display,type,action) \ G_STMT_START { \ if (GTK_DISPLAY_DEBUG_CHECK (display,type)) { action; }; \ diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c index 5bd6005f8c..009293dd74 100644 --- a/gtk/gtkrange.c +++ b/gtk/gtkrange.c @@ -102,9 +102,6 @@ struct _GtkRangePrivate guint slider_size_fixed : 1; guint trough_click_forward : 1; /* trough click was on the forward side of slider */ - /* The range has an origin, should be drawn differently. Used by GtkScale */ - guint has_origin : 1; - /* Whether we're doing fine adjustment */ guint zoom : 1; @@ -542,7 +539,6 @@ gtk_range_init (GtkRange *range) priv->inverted = FALSE; priv->flippable = FALSE; priv->round_digits = -1; - priv->has_origin = FALSE; priv->show_fill_level = FALSE; priv->restrict_to_fill_level = TRUE; priv->fill_level = G_MAXDOUBLE; @@ -1452,7 +1448,7 @@ gtk_range_allocate_trough (GtkGizmo *gizmo, gtk_widget_size_allocate (priv->fill_widget, &fill_alloc, -1); } - if (priv->has_origin) + if (priv->highlight_widget) { GtkAllocation highlight_alloc; int min, nat; @@ -1684,7 +1680,7 @@ gtk_range_render_trough (GtkGizmo *gizmo, gtk_adjustment_get_lower (priv->adjustment) != 0) gtk_widget_snapshot_child (GTK_WIDGET (gizmo), priv->fill_widget, snapshot); - if (priv->has_origin) + if (priv->highlight_widget) gtk_widget_snapshot_child (GTK_WIDGET (gizmo), priv->highlight_widget, snapshot); gtk_widget_snapshot_child (GTK_WIDGET (gizmo), priv->slider_widget, snapshot); @@ -2845,8 +2841,6 @@ _gtk_range_set_has_origin (GtkRange *range, { GtkRangePrivate *priv = gtk_range_get_instance_private (range); - priv->has_origin = has_origin; - if (has_origin) { priv->highlight_widget = gtk_gizmo_new ("highlight", NULL, NULL, NULL); @@ -2864,9 +2858,9 @@ _gtk_range_set_has_origin (GtkRange *range, gboolean _gtk_range_get_has_origin (GtkRange *range) { - GtkRangePrivate *priv = gtk_range_get_instance_private (range); - return priv->has_origin; + + return priv->highlight_widget != NULL; } void diff --git a/gtk/gtkrender.c b/gtk/gtkrender.c index 9f6ce29750..3c90bb03d2 100644 --- a/gtk/gtkrender.c +++ b/gtk/gtkrender.c @@ -551,63 +551,6 @@ gtk_render_line (GtkStyleContext *context, } static void -gtk_do_render_slider (GtkStyleContext *context, - cairo_t *cr, - gdouble x, - gdouble y, - gdouble width, - gdouble height, - GtkOrientation orientation) -{ - GtkCssStyle *style; - - style = gtk_style_context_lookup_style (context); - - gtk_css_style_render_background (style, - cr, - x, y, width, height); - gtk_css_style_render_border (style, - cr, - x, y, width, height); -} - -/** - * gtk_render_slider: - * @context: a #GtkStyleContext - * @cr: a #cairo_t - * @x: X origin of the rectangle - * @y: Y origin of the rectangle - * @width: rectangle width - * @height: rectangle height - * @orientation: orientation of the slider - * - * Renders a slider (as in #GtkScale) in the rectangle defined by @x, @y, - * @width, @height. @orientation defines whether the slider is vertical - * or horizontal. - * - * Typical slider rendering: - * - * ![](sliders.png) - **/ -void -gtk_render_slider (GtkStyleContext *context, - cairo_t *cr, - gdouble x, - gdouble y, - gdouble width, - gdouble height, - GtkOrientation orientation) -{ - g_return_if_fail (GTK_IS_STYLE_CONTEXT (context)); - g_return_if_fail (cr != NULL); - - if (width <= 0 || height <= 0) - return; - - gtk_do_render_slider (context, cr, x, y, width, height, orientation); -} - -static void gtk_css_style_render_frame_gap (GtkCssStyle *style, cairo_t *cr, gdouble x, @@ -766,7 +709,7 @@ gtk_do_render_handle (GtkStyleContext *context, * @width: rectangle width * @height: rectangle height * - * Renders a handle (as in #GtkHandleBox, #GtkPaned and + * Renders a handle (as in #GtkPaned and * #GtkWindow’s resize grip), in the rectangle * determined by @x, @y, @width, @height. * diff --git a/gtk/gtkrenderborder.c b/gtk/gtkrenderborder.c index be5993698a..f8e81253ea 100644 --- a/gtk/gtkrenderborder.c +++ b/gtk/gtkrenderborder.c @@ -856,18 +856,6 @@ snapshot_border (GtkSnapshot *snapshot, snapshot_frame_fill (snapshot, border_box, border_width, colors, hidden_side); } -gboolean -gtk_css_style_render_has_border (GtkCssStyle *style) -{ - if (_gtk_css_image_value_get_image (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_BORDER_IMAGE_SOURCE))) - return TRUE; - - return _gtk_css_number_value_get (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_BORDER_TOP_WIDTH), 100) > 0 - || _gtk_css_number_value_get (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_BORDER_RIGHT_WIDTH), 100) > 0 - || _gtk_css_number_value_get (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_BORDER_BOTTOM_WIDTH), 100) > 0 - || _gtk_css_number_value_get (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_BORDER_LEFT_WIDTH), 100) > 0; -} - void gtk_css_style_render_border (GtkCssStyle *style, cairo_t *cr, @@ -983,25 +971,6 @@ gtk_css_style_snapshot_border (GtkCssStyle *style, } gboolean -gtk_css_style_render_border_get_clip (GtkCssStyle *style, - gdouble x, - gdouble y, - gdouble width, - gdouble height, - GdkRectangle *out_clip) -{ - if (!gtk_css_style_render_has_border (style)) - return FALSE; - - out_clip->x = floor (x); - out_clip->y = floor (y); - out_clip->width = ceil (x + width) - out_clip->x; - out_clip->height = ceil (y + height) - out_clip->y; - - return TRUE; -} - -gboolean gtk_css_style_render_has_outline (GtkCssStyle *style) { return _gtk_css_number_value_get (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_OUTLINE_WIDTH), 100) > 0; @@ -1109,26 +1078,3 @@ gtk_css_style_snapshot_outline (GtkCssStyle *style, snapshot_border (snapshot, &border_box, border_width, colors, border_style); } } - -gboolean -gtk_css_style_render_outline_get_clip (GtkCssStyle *style, - gdouble x, - gdouble y, - gdouble width, - gdouble height, - GdkRectangle *out_clip) -{ - cairo_rectangle_t rect; - - if (!gtk_css_style_render_has_outline (style)) - return FALSE; - - compute_outline_rect (style, x, y, width, height, &rect); - - out_clip->x = floor (rect.x); - out_clip->y = floor (rect.y); - out_clip->width = ceil (rect.x + rect.width) - out_clip->x; - out_clip->height = ceil (rect.y + rect.height) - out_clip->y; - - return TRUE; -} diff --git a/gtk/gtkrenderborderprivate.h b/gtk/gtkrenderborderprivate.h index b9f94cf37c..c0bed70854 100644 --- a/gtk/gtkrenderborderprivate.h +++ b/gtk/gtkrenderborderprivate.h @@ -29,19 +29,12 @@ G_BEGIN_DECLS -gboolean gtk_css_style_render_has_border (GtkCssStyle *style); void gtk_css_style_render_border (GtkCssStyle *style, cairo_t *cr, gdouble x, gdouble y, gdouble width, gdouble height); -gboolean gtk_css_style_render_border_get_clip (GtkCssStyle *style, - gdouble x, - gdouble y, - gdouble width, - gdouble height, - GdkRectangle *out_clip) G_GNUC_WARN_UNUSED_RESULT; void gtk_css_style_snapshot_border (GtkCssStyle *style, GtkSnapshot *snapshot, gdouble width, @@ -58,13 +51,6 @@ void gtk_css_style_snapshot_outline (GtkCssStyle GtkSnapshot *snapshot, gdouble width, gdouble height); -gboolean gtk_css_style_render_outline_get_clip (GtkCssStyle *style, - gdouble x, - gdouble y, - gdouble width, - gdouble height, - GdkRectangle *out_clip) G_GNUC_WARN_UNUSED_RESULT; - G_END_DECLS diff --git a/gtk/gtkscalebutton.c b/gtk/gtkscalebutton.c index 0ddfd9dc06..04d90a783a 100644 --- a/gtk/gtkscalebutton.c +++ b/gtk/gtkscalebutton.c @@ -102,7 +102,7 @@ enum PROP_ICONS }; -struct _GtkScaleButtonPrivate +typedef struct { GtkWidget *plus_button; GtkWidget *minus_button; @@ -124,7 +124,7 @@ struct _GtkScaleButtonPrivate gchar **icon_list; GtkAdjustment *adjustment; /* needed because it must be settable in init() */ -}; +} GtkScaleButtonPrivate; static void gtk_scale_button_constructed (GObject *object); static void gtk_scale_button_dispose (GObject *object); @@ -363,12 +363,10 @@ button_pressed_cb (GtkGesture *gesture, static void gtk_scale_button_init (GtkScaleButton *button) { - GtkScaleButtonPrivate *priv; + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); GtkStyleContext *context; GtkEventController *controller; - button->priv = priv = gtk_scale_button_get_instance_private (button); - priv->click_id = 0; priv->orientation = GTK_ORIENTATION_VERTICAL; priv->applied_orientation = GTK_ORIENTATION_VERTICAL; @@ -443,7 +441,7 @@ gtk_scale_button_get_property (GObject *object, GParamSpec *pspec) { GtkScaleButton *button = GTK_SCALE_BUTTON (object); - GtkScaleButtonPrivate *priv = button->priv; + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); switch (prop_id) { @@ -469,7 +467,7 @@ static void gtk_scale_button_finalize (GObject *object) { GtkScaleButton *button = GTK_SCALE_BUTTON (object); - GtkScaleButtonPrivate *priv = button->priv; + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); if (priv->icon_list) { @@ -493,7 +491,7 @@ static void gtk_scale_button_dispose (GObject *object) { GtkScaleButton *button = GTK_SCALE_BUTTON (object); - GtkScaleButtonPrivate *priv = button->priv; + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); if (priv->dock) { @@ -555,12 +553,10 @@ gtk_scale_button_new (gdouble min, gdouble gtk_scale_button_get_value (GtkScaleButton * button) { - GtkScaleButtonPrivate *priv; + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); g_return_val_if_fail (GTK_IS_SCALE_BUTTON (button), 0); - priv = button->priv; - return gtk_adjustment_get_value (priv->adjustment); } @@ -578,12 +574,10 @@ void gtk_scale_button_set_value (GtkScaleButton *button, gdouble value) { - GtkScaleButtonPrivate *priv; + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); g_return_if_fail (GTK_IS_SCALE_BUTTON (button)); - priv = button->priv; - gtk_range_set_value (GTK_RANGE (priv->scale), value); g_object_notify (G_OBJECT (button), "value"); } @@ -600,13 +594,11 @@ void gtk_scale_button_set_icons (GtkScaleButton *button, const gchar **icons) { - GtkScaleButtonPrivate *priv; + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); gchar **tmp; g_return_if_fail (GTK_IS_SCALE_BUTTON (button)); - priv = button->priv; - tmp = priv->icon_list; priv->icon_list = g_strdupv ((gchar **) icons); g_strfreev (tmp); @@ -627,9 +619,11 @@ gtk_scale_button_set_icons (GtkScaleButton *button, GtkAdjustment* gtk_scale_button_get_adjustment (GtkScaleButton *button) { + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); + g_return_val_if_fail (GTK_IS_SCALE_BUTTON (button), NULL); - return button->priv->adjustment; + return priv->adjustment; } /** @@ -645,6 +639,8 @@ void gtk_scale_button_set_adjustment (GtkScaleButton *button, GtkAdjustment *adjustment) { + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); + g_return_if_fail (GTK_IS_SCALE_BUTTON (button)); if (!adjustment) @@ -652,14 +648,14 @@ gtk_scale_button_set_adjustment (GtkScaleButton *button, else g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment)); - if (button->priv->adjustment != adjustment) + if (priv->adjustment != adjustment) { - if (button->priv->adjustment) - g_object_unref (button->priv->adjustment); - button->priv->adjustment = g_object_ref_sink (adjustment); + if (priv->adjustment) + g_object_unref (priv->adjustment); + priv->adjustment = g_object_ref_sink (adjustment); - if (button->priv->scale) - gtk_range_set_adjustment (GTK_RANGE (button->priv->scale), adjustment); + if (priv->scale) + gtk_range_set_adjustment (GTK_RANGE (priv->scale), adjustment); g_object_notify (G_OBJECT (button), "adjustment"); } @@ -676,9 +672,11 @@ gtk_scale_button_set_adjustment (GtkScaleButton *button, GtkWidget * gtk_scale_button_get_plus_button (GtkScaleButton *button) { + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); + g_return_val_if_fail (GTK_IS_SCALE_BUTTON (button), NULL); - return button->priv->plus_button; + return priv->plus_button; } /** @@ -692,9 +690,11 @@ gtk_scale_button_get_plus_button (GtkScaleButton *button) GtkWidget * gtk_scale_button_get_minus_button (GtkScaleButton *button) { + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); + g_return_val_if_fail (GTK_IS_SCALE_BUTTON (button), NULL); - return button->priv->minus_button; + return priv->minus_button; } /** @@ -708,16 +708,18 @@ gtk_scale_button_get_minus_button (GtkScaleButton *button) GtkWidget * gtk_scale_button_get_popup (GtkScaleButton *button) { + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); + g_return_val_if_fail (GTK_IS_SCALE_BUTTON (button), NULL); - return button->priv->dock; + return priv->dock; } static void apply_orientation (GtkScaleButton *button, GtkOrientation orientation) { - GtkScaleButtonPrivate *priv = button->priv; + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); if (priv->applied_orientation != orientation) { @@ -755,7 +757,7 @@ static void gtk_scale_button_set_orientation_private (GtkScaleButton *button, GtkOrientation orientation) { - GtkScaleButtonPrivate *priv = button->priv; + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); if (priv->orientation != orientation) { @@ -770,11 +772,10 @@ gtk_scale_button_scroll_controller_scroll (GtkEventControllerScroll *scroll, gdouble dy, GtkScaleButton *button) { - GtkScaleButtonPrivate *priv; + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); GtkAdjustment *adjustment; gdouble d; - priv = button->priv; adjustment = priv->adjustment; d = CLAMP (gtk_scale_button_get_value (button) - @@ -793,7 +794,7 @@ static gboolean gtk_scale_popup (GtkWidget *widget) { GtkScaleButton *button = GTK_SCALE_BUTTON (widget); - GtkScaleButtonPrivate *priv = button->priv; + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); GtkWidget *toplevel; GtkBorder border; GtkRequisition req; @@ -823,7 +824,7 @@ static void gtk_scale_button_popdown (GtkWidget *widget) { GtkScaleButton *button = GTK_SCALE_BUTTON (widget); - GtkScaleButtonPrivate *priv = button->priv; + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); gtk_popover_popdown (GTK_POPOVER (priv->dock)); } @@ -847,7 +848,7 @@ static gboolean button_click (GtkScaleButton *button, GtkWidget *active) { - GtkScaleButtonPrivate *priv = button->priv; + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); GtkAdjustment *adjustment = priv->adjustment; gboolean can_continue = TRUE; gdouble val; @@ -880,7 +881,7 @@ cb_button_clicked (GtkWidget *widget, gpointer user_data) { GtkScaleButton *button = GTK_SCALE_BUTTON (user_data); - GtkScaleButtonPrivate *priv = button->priv; + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); if (priv->autoscroll_timeout) { @@ -901,7 +902,7 @@ cb_button_clicked (GtkWidget *widget, static void gtk_scale_button_update_icon (GtkScaleButton *button) { - GtkScaleButtonPrivate *priv = button->priv; + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); GtkAdjustment *adjustment; gdouble value; const gchar *name; @@ -967,17 +968,18 @@ cb_scale_value_changed (GtkRange *range, gpointer user_data) { GtkScaleButton *button = user_data; + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); gdouble value; gdouble upper, lower; value = gtk_range_get_value (range); - upper = gtk_adjustment_get_upper (button->priv->adjustment); - lower = gtk_adjustment_get_lower (button->priv->adjustment); + upper = gtk_adjustment_get_upper (priv->adjustment); + lower = gtk_adjustment_get_lower (priv->adjustment); gtk_scale_button_update_icon (button); - gtk_widget_set_sensitive (button->priv->plus_button, value < upper); - gtk_widget_set_sensitive (button->priv->minus_button, lower < value); + gtk_widget_set_sensitive (priv->plus_button, value < upper); + gtk_widget_set_sensitive (priv->minus_button, lower < value); g_signal_emit (button, signals[VALUE_CHANGED], 0, value); g_object_notify (G_OBJECT (button), "value"); @@ -988,7 +990,7 @@ cb_popup_mapped (GtkWidget *popup, gpointer user_data) { GtkScaleButton *button = user_data; - GtkScaleButtonPrivate *priv = button->priv; + GtkScaleButtonPrivate *priv = gtk_scale_button_get_instance_private (button); gtk_widget_grab_focus (priv->scale); } diff --git a/gtk/gtkscalebutton.h b/gtk/gtkscalebutton.h index 0f01cbf5bf..1fc7ecdab2 100644 --- a/gtk/gtkscalebutton.h +++ b/gtk/gtkscalebutton.h @@ -51,14 +51,10 @@ G_BEGIN_DECLS typedef struct _GtkScaleButton GtkScaleButton; typedef struct _GtkScaleButtonClass GtkScaleButtonClass; -typedef struct _GtkScaleButtonPrivate GtkScaleButtonPrivate; struct _GtkScaleButton { - GtkButton parent; - - /*< private >*/ - GtkScaleButtonPrivate *priv; + GtkButton parent_instance; }; struct _GtkScaleButtonClass diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c index 928019098f..4c502846ae 100644 --- a/gtk/gtkscrolledwindow.c +++ b/gtk/gtkscrolledwindow.c @@ -96,7 +96,8 @@ * gtk_bin_get_child (GTK_BIN (scrolled_window))); * ]| * - * Unless #GtkScrolledWindow:policy is GTK_POLICY_NEVER or GTK_POLICY_EXTERNAL, + * Unless #GtkScrolledWindow:hscrolbar-policy and #GtkScrolledWindow:vscrollbar-policy + * are GTK_POLICY_NEVER or GTK_POLICY_EXTERNAL, * GtkScrolledWindow adds internal #GtkScrollbar widgets around its child. The * scroll position of the child, and if applicable the scrollbars, is controlled * by the #GtkScrolledWindow:hadjustment and #GtkScrolledWindow:vadjustment @@ -660,7 +661,7 @@ gtk_scrolled_window_class_init (GtkScrolledWindowClass *class) * GtkScrolledWindow:propagate-natural-width: * * Whether the natural width of the child should be calculated and propagated - * through the scrolled windows requested natural width. + * through the scrolled window’s requested natural width. * * This is useful in cases where an attempt should be made to allocate exactly * enough space for the natural size of the child. @@ -676,7 +677,7 @@ gtk_scrolled_window_class_init (GtkScrolledWindowClass *class) * GtkScrolledWindow:propagate-natural-height: * * Whether the natural height of the child should be calculated and propagated - * through the scrolled windows requested natural height. + * through the scrolled window’s requested natural height. * * This is useful in cases where an attempt should be made to allocate exactly * enough space for the natural size of the child. @@ -701,7 +702,7 @@ gtk_scrolled_window_class_init (GtkScrolledWindowClass *class) * [keybinding signal][GtkBindingSignal] * which gets emitted when a keybinding that scrolls is pressed. * The horizontal or vertical adjustment is updated which triggers a - * signal that the scrolled windows child may listen to and scroll itself. + * signal that the scrolled window’s child may listen to and scroll itself. */ signals[SCROLL_CHILD] = g_signal_new (I_("scroll-child"), @@ -724,9 +725,9 @@ gtk_scrolled_window_class_init (GtkScrolledWindowClass *class) * [keybinding signal][GtkBindingSignal] which gets * emitted when focus is moved away from the scrolled window by a * keybinding. The #GtkWidget::move-focus signal is emitted with - * @direction_type on this scrolled windows toplevel parent in the + * @direction_type on this scrolled window’s toplevel parent in the * container hierarchy. The default bindings for this signal are - * `Tab + Ctrl` and `Tab + Ctrl + Shift`. + * `Ctrl + Tab` to move forward and `Ctrl + Shift + Tab` to move backward. */ signals[MOVE_FOCUS_OUT] = g_signal_new (I_("move-focus-out"), @@ -744,7 +745,7 @@ gtk_scrolled_window_class_init (GtkScrolledWindowClass *class) * @pos: edge side that was hit * * The ::edge-overshot signal is emitted whenever user initiated scrolling - * makes the scrolledwindow firmly surpass (ie. with some edge resistance) + * makes the scrolled window firmly surpass (i.e. with some edge resistance) * the lower or upper limits defined by the adjustment in that orientation. * * A similar behavior without edge resistance is provided by the @@ -767,7 +768,7 @@ gtk_scrolled_window_class_init (GtkScrolledWindowClass *class) * @pos: edge side that was reached * * The ::edge-reached signal is emitted whenever user-initiated scrolling - * makes the scrolledwindow exactly reaches the lower or upper limits + * makes the scrolled window exactly reach the lower or upper limits * defined by the adjustment in that orientation. * * A similar behavior with edge resistance is provided by the @@ -1376,6 +1377,36 @@ scroll_controller_decelerate (GtkEventControllerScroll *scroll, } static void +gtk_scrolled_window_update_scrollbar_visibility_flags (GtkScrolledWindow *scrolled_window, + GtkWidget *scrollbar) +{ + GtkScrolledWindowPrivate *priv = gtk_scrolled_window_get_instance_private (scrolled_window); + GtkAdjustment *adjustment; + + if (scrollbar == NULL) + return; + + adjustment = gtk_scrollbar_get_adjustment (GTK_SCROLLBAR (scrollbar)); + + if (scrollbar == priv->hscrollbar) + { + if (priv->hscrollbar_policy == GTK_POLICY_AUTOMATIC) + { + priv->hscrollbar_visible = (gtk_adjustment_get_upper (adjustment) - gtk_adjustment_get_lower (adjustment) > + gtk_adjustment_get_page_size (adjustment)); + } + } + else if (scrollbar == priv->vscrollbar) + { + if (priv->vscrollbar_policy == GTK_POLICY_AUTOMATIC) + { + priv->vscrollbar_visible = (gtk_adjustment_get_upper (adjustment) - gtk_adjustment_get_lower (adjustment) > + gtk_adjustment_get_page_size (adjustment)); + } + } +} + +static void gtk_scrolled_window_size_allocate (GtkWidget *widget, const GtkAllocation *allocation, int baseline) @@ -1560,20 +1591,21 @@ gtk_scrolled_window_size_allocate (GtkWidget *widget, { previous_hvis = priv->hscrollbar_visible; previous_vvis = priv->vscrollbar_visible; + gtk_scrolled_window_allocate_child (scrolled_window, allocation); - /* Explicitly force scrollbar visibility checks. - * - * Since we make a guess above, the child might not decide to update the adjustments - * if they logically did not change since the last configuration - */ - if (priv->hscrollbar) - gtk_scrolled_window_adjustment_changed - (gtk_scrollbar_get_adjustment (GTK_SCROLLBAR (priv->hscrollbar)), scrolled_window); + /* Explicitly force scrollbar visibility checks. + * + * Since we make a guess above, the child might not decide to update the adjustments + * if they logically did not change since the last configuration + * + * These will update priv->hscrollbar_visible and priv->vscrollbar_visible. + */ + gtk_scrolled_window_update_scrollbar_visibility_flags (scrolled_window, + priv->hscrollbar); - if (priv->vscrollbar) - gtk_scrolled_window_adjustment_changed - (gtk_scrollbar_get_adjustment (GTK_SCROLLBAR (priv->vscrollbar)), scrolled_window); + gtk_scrolled_window_update_scrollbar_visibility_flags (scrolled_window, + priv->vscrollbar); /* If, after the first iteration, the hscrollbar and the * vscrollbar flip visiblity... or if one of the scrollbars flip @@ -3377,12 +3409,11 @@ gtk_scrolled_window_adjustment_changed (GtkAdjustment *adjustment, { gboolean visible; - visible = priv->hscrollbar_visible; - priv->hscrollbar_visible = (gtk_adjustment_get_upper (adjustment) - gtk_adjustment_get_lower (adjustment) > - gtk_adjustment_get_page_size (adjustment)); + visible = priv->hscrollbar_visible; + gtk_scrolled_window_update_scrollbar_visibility_flags (scrolled_window, priv->hscrollbar); - if (priv->hscrollbar_visible != visible) - gtk_widget_queue_resize (GTK_WIDGET (scrolled_window)); + if (priv->hscrollbar_visible != visible) + gtk_widget_queue_resize (GTK_WIDGET (scrolled_window)); } } else if (adjustment == gtk_scrollbar_get_adjustment (GTK_SCROLLBAR (priv->vscrollbar))) @@ -3391,12 +3422,11 @@ gtk_scrolled_window_adjustment_changed (GtkAdjustment *adjustment, { gboolean visible; - visible = priv->vscrollbar_visible; - priv->vscrollbar_visible = (gtk_adjustment_get_upper (adjustment) - gtk_adjustment_get_lower (adjustment) > - gtk_adjustment_get_page_size (adjustment)); + visible = priv->vscrollbar_visible; + gtk_scrolled_window_update_scrollbar_visibility_flags (scrolled_window, priv->vscrollbar); - if (priv->vscrollbar_visible != visible) - gtk_widget_queue_resize (GTK_WIDGET (scrolled_window)); + if (priv->vscrollbar_visible != visible) + gtk_widget_queue_resize (GTK_WIDGET (scrolled_window)); } } } @@ -4133,7 +4163,7 @@ gtk_scrolled_window_get_max_content_height (GtkScrolledWindow *scrolled_window) * @propagate: whether to propagate natural width * * Sets whether the natural width of the child should be calculated and propagated - * through the scrolled windows requested natural width. + * through the scrolled window’s requested natural width. */ void gtk_scrolled_window_set_propagate_natural_width (GtkScrolledWindow *scrolled_window, @@ -4158,7 +4188,7 @@ gtk_scrolled_window_set_propagate_natural_width (GtkScrolledWindow *scrolled_win * @scrolled_window: a #GtkScrolledWindow * * Reports whether the natural width of the child will be calculated and propagated - * through the scrolled windows requested natural width. + * through the scrolled window’s requested natural width. * * Returns: whether natural width propagation is enabled. */ @@ -4178,7 +4208,7 @@ gtk_scrolled_window_get_propagate_natural_width (GtkScrolledWindow *scrolled_win * @propagate: whether to propagate natural height * * Sets whether the natural height of the child should be calculated and propagated - * through the scrolled windows requested natural height. + * through the scrolled window’s requested natural height. */ void gtk_scrolled_window_set_propagate_natural_height (GtkScrolledWindow *scrolled_window, @@ -4203,7 +4233,7 @@ gtk_scrolled_window_set_propagate_natural_height (GtkScrolledWindow *scrolled_wi * @scrolled_window: a #GtkScrolledWindow * * Reports whether the natural height of the child will be calculated and propagated - * through the scrolled windows requested natural height. + * through the scrolled window’s requested natural height. * * Returns: whether natural height propagation is enabled. */ diff --git a/gtk/gtksearchbar.c b/gtk/gtksearchbar.c index 8f26e8ecf4..df91d8ef31 100644 --- a/gtk/gtksearchbar.c +++ b/gtk/gtksearchbar.c @@ -640,6 +640,9 @@ capture_widget_key_handled (GtkEventControllerKey *controller, GtkSearchBarPrivate *priv = gtk_search_bar_get_instance_private (bar); gboolean handled; + if (!gtk_widget_get_mapped (GTK_WIDGET (bar))) + return GDK_EVENT_PROPAGATE; + if (priv->reveal_child) return GDK_EVENT_PROPAGATE; @@ -710,8 +713,6 @@ capture_widget_key_handled (GtkEventControllerKey *controller, * * If key events are handled by the search bar, the bar will * be shown, and the entry populated with the entered text. - * - * Since: 3.94 **/ void gtk_search_bar_set_key_capture_widget (GtkSearchBar *bar, @@ -758,8 +759,6 @@ gtk_search_bar_set_key_capture_widget (GtkSearchBar *bar, * Gets the widget that @bar is capturing key events from. * * Returns: (transfer none): The key capture widget. - * - * Since: 3.94 **/ GtkWidget * gtk_search_bar_get_key_capture_widget (GtkSearchBar *bar) diff --git a/gtk/gtksearchentry.c b/gtk/gtksearchentry.c index 7e50642f17..693fe6d485 100644 --- a/gtk/gtksearchentry.c +++ b/gtk/gtksearchentry.c @@ -490,8 +490,6 @@ capture_widget_key_handled (GtkEventControllerKey *controller, * If the entry is part of a #GtkSearchBar, it is preferable * to call gtk_search_bar_set_key_capture_widget() instead, which * will reveal the entry in addition to triggering the search entry. - * - * Since: 3.94 **/ void gtk_search_entry_set_key_capture_widget (GtkSearchEntry *entry, @@ -535,8 +533,6 @@ gtk_search_entry_set_key_capture_widget (GtkSearchEntry *entry, * Gets the widget that @entry is capturing key events from. * * Returns: (transfer none): The key capture widget. - * - * Since: 3.94 **/ GtkWidget * gtk_search_entry_get_key_capture_widget (GtkSearchEntry *entry) diff --git a/gtk/gtkseparatortoolitem.c b/gtk/gtkseparatortoolitem.c index 7964f5e8e2..3cdc517c19 100644 --- a/gtk/gtkseparatortoolitem.c +++ b/gtk/gtkseparatortoolitem.c @@ -49,11 +49,6 @@ #define MENU_ID "gtk-separator-tool-item-menu-id" -struct _GtkSeparatorToolItemPrivate -{ - guint draw : 1; -}; - enum { PROP_0, PROP_DRAW @@ -71,7 +66,7 @@ static void gtk_separator_tool_item_get_property (GObject static void gtk_separator_tool_item_add (GtkContainer *container, GtkWidget *child); -G_DEFINE_TYPE_WITH_PRIVATE (GtkSeparatorToolItem, gtk_separator_tool_item, GTK_TYPE_TOOL_ITEM) +G_DEFINE_TYPE (GtkSeparatorToolItem, gtk_separator_tool_item, GTK_TYPE_TOOL_ITEM) static void gtk_separator_tool_item_class_init (GtkSeparatorToolItemClass *class) @@ -107,12 +102,9 @@ gtk_separator_tool_item_class_init (GtkSeparatorToolItemClass *class) static void gtk_separator_tool_item_init (GtkSeparatorToolItem *separator_item) { - GtkSeparatorToolItemPrivate *priv; GtkWidget *widget; widget = GTK_WIDGET (separator_item); - priv = separator_item->priv = gtk_separator_tool_item_get_instance_private (separator_item); - priv->draw = TRUE; gtk_widget_set_has_surface (widget, FALSE); } @@ -204,9 +196,13 @@ gtk_separator_tool_item_new (void) gboolean gtk_separator_tool_item_get_draw (GtkSeparatorToolItem *item) { + GtkStyleContext *context; + g_return_val_if_fail (GTK_IS_SEPARATOR_TOOL_ITEM (item), FALSE); - - return item->priv->draw; + + context = gtk_widget_get_style_context (GTK_WIDGET (item)); + + return !gtk_style_context_has_class (context, "invisible"); } /** @@ -224,18 +220,17 @@ gtk_separator_tool_item_set_draw (GtkSeparatorToolItem *item, { g_return_if_fail (GTK_IS_SEPARATOR_TOOL_ITEM (item)); - draw = draw != FALSE; + draw = !!draw; - if (draw != item->priv->draw) - { - item->priv->draw = draw; - if (draw) - gtk_style_context_remove_class (gtk_widget_get_style_context (GTK_WIDGET (item)), - "invisible"); - else - gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (item)), - "invisible"); - - g_object_notify (G_OBJECT (item), "draw"); - } + if (draw == gtk_separator_tool_item_get_draw (item)) + return; + + if (draw) + gtk_style_context_remove_class (gtk_widget_get_style_context (GTK_WIDGET (item)), + "invisible"); + else + gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (item)), + "invisible"); + + g_object_notify (G_OBJECT (item), "draw"); } diff --git a/gtk/gtkseparatortoolitem.h b/gtk/gtkseparatortoolitem.h index 2fff9e4fcd..2d0eac535d 100644 --- a/gtk/gtkseparatortoolitem.h +++ b/gtk/gtkseparatortoolitem.h @@ -37,14 +37,10 @@ G_BEGIN_DECLS typedef struct _GtkSeparatorToolItem GtkSeparatorToolItem; typedef struct _GtkSeparatorToolItemClass GtkSeparatorToolItemClass; -typedef struct _GtkSeparatorToolItemPrivate GtkSeparatorToolItemPrivate; struct _GtkSeparatorToolItem { - GtkToolItem parent; - - /*< private >*/ - GtkSeparatorToolItemPrivate *priv; + GtkToolItem parent_instance; }; /** diff --git a/gtk/gtksnapshot.c b/gtk/gtksnapshot.c index fc71bbffa7..81e7419207 100644 --- a/gtk/gtksnapshot.c +++ b/gtk/gtksnapshot.c @@ -1086,22 +1086,8 @@ gtk_snapshot_append_node_internal (GtkSnapshot *snapshot, if (current_state) { - if (gsk_render_node_get_node_type (node) == GSK_CONTAINER_NODE) - { - guint i, p; - - for (i = 0, p = gsk_container_node_get_n_children (node); i < p; i ++) - g_ptr_array_add (snapshot->nodes, - gsk_render_node_ref (gsk_container_node_get_child (node, i))); - - current_state->n_nodes += p; - /* Don't unref @node... */ - } - else - { - g_ptr_array_add (snapshot->nodes, gsk_render_node_ref (node)); - current_state->n_nodes ++; - } + g_ptr_array_add (snapshot->nodes, gsk_render_node_ref (node)); + current_state->n_nodes ++; } else { diff --git a/gtk/gtkspinbutton.c b/gtk/gtkspinbutton.c index 6a88e40a7d..9a112ebf7d 100644 --- a/gtk/gtkspinbutton.c +++ b/gtk/gtkspinbutton.c @@ -34,7 +34,9 @@ #include "gtkbox.h" #include "gtkbutton.h" #include "gtkcssstylepropertyprivate.h" -#include "gtkentryprivate.h" +#include "gtkeditable.h" +#include "gtkentry.h" +#include "gtkeventcontrollerkey.h" #include "gtkeventcontrollermotion.h" #include "gtkeventcontrollerscroll.h" #include "gtkgesturemultipress.h" @@ -222,6 +224,7 @@ enum { PROP_WIDTH_CHARS, PROP_MAX_WIDTH_CHARS, PROP_TEXT, + NUM_SPINBUTTON_PROPS, PROP_ORIENTATION, }; @@ -258,8 +261,6 @@ static void gtk_spin_button_measure (GtkWidget *widget, static void gtk_spin_button_size_allocate (GtkWidget *widget, const GtkAllocation *allocation, int baseline); -static gboolean gtk_spin_button_event (GtkWidget *widget, - GdkEvent *event); static void gtk_spin_button_grab_notify (GtkWidget *widget, gboolean was_grabbed); static void gtk_spin_button_state_flags_changed (GtkWidget *widget, @@ -291,6 +292,7 @@ static void gtk_spin_button_default_output (GtkSpinButton *spin_button); static guint spinbutton_signals[LAST_SIGNAL] = {0}; +static GParamSpec *spinbutton_props[NUM_SPINBUTTON_PROPS] = {NULL, }; G_DEFINE_TYPE_WITH_CODE (GtkSpinButton, gtk_spin_button, GTK_TYPE_WIDGET, G_ADD_PRIVATE (GtkSpinButton) @@ -318,7 +320,6 @@ gtk_spin_button_class_init (GtkSpinButtonClass *class) widget_class->realize = gtk_spin_button_realize; widget_class->measure = gtk_spin_button_measure; widget_class->size_allocate = gtk_spin_button_size_allocate; - widget_class->event = gtk_spin_button_event; widget_class->grab_notify = gtk_spin_button_grab_notify; widget_class->state_flags_changed = gtk_spin_button_state_flags_changed; @@ -326,97 +327,87 @@ gtk_spin_button_class_init (GtkSpinButtonClass *class) class->output = NULL; class->change_value = gtk_spin_button_real_change_value; - g_object_class_install_property (gobject_class, - PROP_ADJUSTMENT, - g_param_spec_object ("adjustment", - P_("Adjustment"), - P_("The adjustment that holds the value of the spin button"), - GTK_TYPE_ADJUSTMENT, - GTK_PARAM_READWRITE)); - - g_object_class_install_property (gobject_class, - PROP_CLIMB_RATE, - g_param_spec_double ("climb-rate", - P_("Climb Rate"), - P_("The acceleration rate when you hold down a button or key"), - 0.0, G_MAXDOUBLE, 0.0, - GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY)); - - g_object_class_install_property (gobject_class, - PROP_DIGITS, - g_param_spec_uint ("digits", - P_("Digits"), - P_("The number of decimal places to display"), - 0, MAX_DIGITS, 0, - GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY)); - - g_object_class_install_property (gobject_class, - PROP_SNAP_TO_TICKS, - g_param_spec_boolean ("snap-to-ticks", - P_("Snap to Ticks"), - P_("Whether erroneous values are automatically changed to a spin button’s nearest step increment"), - FALSE, - GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY)); - - g_object_class_install_property (gobject_class, - PROP_NUMERIC, - g_param_spec_boolean ("numeric", - P_("Numeric"), - P_("Whether non-numeric characters should be ignored"), - FALSE, - GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY)); - - g_object_class_install_property (gobject_class, - PROP_WRAP, - g_param_spec_boolean ("wrap", - P_("Wrap"), - P_("Whether a spin button should wrap upon reaching its limits"), - FALSE, - GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY)); - - g_object_class_install_property (gobject_class, - PROP_UPDATE_POLICY, - g_param_spec_enum ("update-policy", - P_("Update Policy"), - P_("Whether the spin button should update always, or only when the value is legal"), - GTK_TYPE_SPIN_BUTTON_UPDATE_POLICY, - GTK_UPDATE_ALWAYS, - GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY)); - - g_object_class_install_property (gobject_class, - PROP_VALUE, - g_param_spec_double ("value", - P_("Value"), - P_("Reads the current value, or sets a new value"), - -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, - GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY)); - - g_object_class_install_property (gobject_class, - PROP_WIDTH_CHARS, - g_param_spec_int ("width-chars", - P_("Width in chars"), - P_("Number of characters to leave space for in the entry"), - -1, G_MAXINT, - 0, - GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY)); - - g_object_class_install_property (gobject_class, - PROP_MAX_WIDTH_CHARS, - g_param_spec_int ("max-width-chars", - P_("Maximum width in characters"), - P_("The desired maximum width of the entry, in characters"), - -1, G_MAXINT, - 0, - GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY)); - - g_object_class_install_property (gobject_class, - PROP_TEXT, - g_param_spec_string ("text", - P_("Text"), - P_("The contents of the entry"), - "0", /* Default value of the default adjustment */ - GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY)); - + spinbutton_props[PROP_ADJUSTMENT] = + g_param_spec_object ("adjustment", + P_("Adjustment"), + P_("The adjustment that holds the value of the spin button"), + GTK_TYPE_ADJUSTMENT, + GTK_PARAM_READWRITE); + + spinbutton_props[PROP_CLIMB_RATE] = + g_param_spec_double ("climb-rate", + P_("Climb Rate"), + P_("The acceleration rate when you hold down a button or key"), + 0.0, G_MAXDOUBLE, 0.0, + GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY); + + spinbutton_props[PROP_DIGITS] = + g_param_spec_uint ("digits", + P_("Digits"), + P_("The number of decimal places to display"), + 0, MAX_DIGITS, 0, + GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY); + + spinbutton_props[PROP_SNAP_TO_TICKS] = + g_param_spec_boolean ("snap-to-ticks", + P_("Snap to Ticks"), + P_("Whether erroneous values are automatically changed to a spin button’s nearest step increment"), + FALSE, + GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY); + + spinbutton_props[PROP_NUMERIC] = + g_param_spec_boolean ("numeric", + P_("Numeric"), + P_("Whether non-numeric characters should be ignored"), + FALSE, + GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY); + + spinbutton_props[PROP_WRAP] = + g_param_spec_boolean ("wrap", + P_("Wrap"), + P_("Whether a spin button should wrap upon reaching its limits"), + FALSE, + GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY); + + spinbutton_props[PROP_UPDATE_POLICY] = + g_param_spec_enum ("update-policy", + P_("Update Policy"), + P_("Whether the spin button should update always, or only when the value is legal"), + GTK_TYPE_SPIN_BUTTON_UPDATE_POLICY, + GTK_UPDATE_ALWAYS, + GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY); + + spinbutton_props[PROP_VALUE] = + g_param_spec_double ("value", + P_("Value"), + P_("Reads the current value, or sets a new value"), + -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, + GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY); + + spinbutton_props[PROP_WIDTH_CHARS] = + g_param_spec_int ("width-chars", + P_("Width in chars"), + P_("Number of characters to leave space for in the entry"), + -1, G_MAXINT, + 0, + GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY); + + spinbutton_props[PROP_MAX_WIDTH_CHARS] = + g_param_spec_int ("max-width-chars", + P_("Maximum width in characters"), + P_("The desired maximum width of the entry, in characters"), + -1, G_MAXINT, + 0, + GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY); + + spinbutton_props[PROP_TEXT] = + g_param_spec_string ("text", + P_("Text"), + P_("The contents of the entry"), + "0", /* Default value of the default adjustment */ + GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY); + + g_object_class_install_properties (gobject_class, NUM_SPINBUTTON_PROPS, spinbutton_props); g_object_class_override_property (gobject_class, PROP_ORIENTATION, "orientation"); @@ -820,6 +811,29 @@ button_released_cb (GtkGestureMultiPress *gesture, } static void +key_controller_key_released (GtkEventControllerKey *key, + guint keyval, + guint keycode, + GdkModifierType modifiers, + GtkSpinButton *spin_button) +{ + GtkSpinButtonPrivate *priv = gtk_spin_button_get_instance_private (spin_button); + + priv->timer_step = gtk_adjustment_get_step_increment (priv->adjustment); + priv->timer_calls = 0; +} + +static void +key_controller_focus_out (GtkEventControllerKey *key, + GtkSpinButton *spin_button) +{ + GtkSpinButtonPrivate *priv = gtk_spin_button_get_instance_private (spin_button); + + if (gtk_editable_get_editable (GTK_EDITABLE (priv->entry))) + gtk_spin_button_update (spin_button); +} + +static void gtk_spin_button_init (GtkSpinButton *spin_button) { GtkSpinButtonPrivate *priv = gtk_spin_button_get_instance_private (spin_button); @@ -901,6 +915,13 @@ gtk_spin_button_init (GtkSpinButton *spin_button) g_signal_connect (controller, "scroll", G_CALLBACK (scroll_controller_scroll), spin_button); gtk_widget_add_controller (GTK_WIDGET (spin_button), controller); + + controller = gtk_event_controller_key_new (); + g_signal_connect (controller, "key-released", + G_CALLBACK (key_controller_key_released), spin_button); + g_signal_connect (controller, "focus-out", + G_CALLBACK (key_controller_focus_out), spin_button); + gtk_widget_add_controller (GTK_WIDGET (spin_button), controller); } static void @@ -1079,38 +1100,6 @@ gtk_spin_button_size_allocate (GtkWidget *widget, gtk_widget_size_allocate (priv->box, allocation, baseline); } -static gboolean -gtk_spin_button_event (GtkWidget *widget, - GdkEvent *event) -{ - GtkSpinButton *spin_button = GTK_SPIN_BUTTON (widget); - GtkSpinButtonPrivate *priv = gtk_spin_button_get_instance_private (spin_button); - - if (gdk_event_get_event_type (event) == GDK_KEY_RELEASE) - { - /* We only get a release at the end of a key repeat run, so reset the timer_step */ - priv->timer_step = gtk_adjustment_get_step_increment (priv->adjustment); - priv->timer_calls = 0; - - return GDK_EVENT_STOP; - } - if (gdk_event_get_event_type (event) == GDK_FOCUS_CHANGE) - { - gboolean focus_in; - - gdk_event_get_focus_in (event, &focus_in); - if (!focus_in) - { - if (gtk_editable_get_editable (GTK_EDITABLE (priv->entry))) - gtk_spin_button_update (spin_button); - } - - return GDK_EVENT_PROPAGATE; - } - - return GDK_EVENT_PROPAGATE; -} - static void gtk_spin_button_grab_notify (GtkWidget *widget, gboolean was_grabbed) @@ -1200,7 +1189,7 @@ gtk_spin_button_value_changed (GtkAdjustment *adjustment, update_buttons_sensitivity (spin_button); gtk_widget_queue_draw (GTK_WIDGET (spin_button)); - g_object_notify (G_OBJECT (spin_button), "value"); + g_object_notify_by_pspec (G_OBJECT (spin_button), spinbutton_props[PROP_VALUE]); } static void @@ -1569,20 +1558,20 @@ gtk_spin_button_configure (GtkSpinButton *spin_button, spin_button); priv->timer_step = gtk_adjustment_get_step_increment (priv->adjustment); - g_object_notify (G_OBJECT (spin_button), "adjustment"); + g_object_notify_by_pspec (G_OBJECT (spin_button), spinbutton_props[PROP_ADJUSTMENT]); gtk_widget_queue_resize (GTK_WIDGET (spin_button)); } if (priv->digits != digits) { priv->digits = digits; - g_object_notify (G_OBJECT (spin_button), "digits"); + g_object_notify_by_pspec (G_OBJECT (spin_button), spinbutton_props[PROP_DIGITS]); } if (priv->climb_rate != climb_rate) { priv->climb_rate = climb_rate; - g_object_notify (G_OBJECT (spin_button), "climb-rate"); + g_object_notify_by_pspec (G_OBJECT (spin_button), spinbutton_props[PROP_CLIMB_RATE]); } g_object_thaw_notify (G_OBJECT (spin_button)); @@ -1730,7 +1719,7 @@ gtk_spin_button_set_digits (GtkSpinButton *spin_button, { priv->digits = digits; gtk_spin_button_value_changed (priv->adjustment, spin_button); - g_object_notify (G_OBJECT (spin_button), "digits"); + g_object_notify_by_pspec (G_OBJECT (spin_button), spinbutton_props[PROP_DIGITS]); /* since lower/upper may have changed */ gtk_widget_queue_resize (GTK_WIDGET (spin_button)); @@ -1949,7 +1938,7 @@ gtk_spin_button_set_update_policy (GtkSpinButton *spin_button, if (priv->update_policy != policy) { priv->update_policy = policy; - g_object_notify (G_OBJECT (spin_button), "update-policy"); + g_object_notify_by_pspec (G_OBJECT (spin_button), spinbutton_props[PROP_UPDATE_POLICY]); } } @@ -1992,8 +1981,8 @@ gtk_spin_button_set_numeric (GtkSpinButton *spin_button, if (priv->numeric != numeric) { - priv->numeric = numeric; - g_object_notify (G_OBJECT (spin_button), "numeric"); + priv->numeric = numeric; + g_object_notify_by_pspec (G_OBJECT (spin_button), spinbutton_props[PROP_NUMERIC]); } } @@ -2037,10 +2026,10 @@ gtk_spin_button_set_wrap (GtkSpinButton *spin_button, if (priv->wrap != wrap) { - priv->wrap = wrap; - g_object_notify (G_OBJECT (spin_button), "wrap"); + priv->wrap = wrap; + g_object_notify_by_pspec (G_OBJECT (spin_button), spinbutton_props[PROP_WRAP]); - update_buttons_sensitivity (spin_button); + update_buttons_sensitivity (spin_button); } } @@ -2090,7 +2079,7 @@ gtk_spin_button_set_snap_to_ticks (GtkSpinButton *spin_button, if (new_val && gtk_editable_get_editable (GTK_EDITABLE (priv->entry))) gtk_spin_button_update (spin_button); - g_object_notify (G_OBJECT (spin_button), "snap-to-ticks"); + g_object_notify_by_pspec (G_OBJECT (spin_button), spinbutton_props[PROP_SNAP_TO_TICKS]); } } @@ -2276,7 +2265,7 @@ gtk_spin_button_set_text (GtkSpinButton *spin_button, gtk_entry_set_text (GTK_ENTRY (priv->entry), text); - g_object_notify (G_OBJECT (spin_button), "text"); + g_object_notify_by_pspec (G_OBJECT (spin_button), spinbutton_props[PROP_TEXT]); } /** @@ -2321,7 +2310,7 @@ gtk_spin_button_set_max_width_chars (GtkSpinButton *spin_button, if (max_width_chars != gtk_entry_get_max_width_chars (GTK_ENTRY (priv->entry))) { gtk_entry_set_max_width_chars (GTK_ENTRY (priv->entry), max_width_chars); - g_object_notify (G_OBJECT (spin_button), "max-width-chars"); + g_object_notify_by_pspec (G_OBJECT (spin_button), spinbutton_props[PROP_MAX_WIDTH_CHARS]); } } @@ -2364,6 +2353,6 @@ gtk_spin_button_set_width_chars (GtkSpinButton *spin_button, if (width_chars != gtk_entry_get_width_chars (GTK_ENTRY (priv->entry))) { gtk_entry_set_width_chars (GTK_ENTRY (priv->entry), width_chars); - g_object_notify (G_OBJECT (spin_button), "width-chars"); + g_object_notify_by_pspec (G_OBJECT (spin_button), spinbutton_props[PROP_WIDTH_CHARS]); } } diff --git a/gtk/gtkstack.c b/gtk/gtkstack.c index 05cf9e785d..a3d36a8603 100644 --- a/gtk/gtkstack.c +++ b/gtk/gtkstack.c @@ -1252,7 +1252,7 @@ gtk_stack_get_child_by_name (GtkStack *stack, * size for all its children. If it isn't, the stack * may change size when a different child becomes visible. * - * Since 3.16, homogeneity can be controlled separately + * Homogeneity can be controlled separately * for horizontal and vertical size, with the * #GtkStack:hhomogeneous and #GtkStack:vhomogeneous. */ diff --git a/gtk/gtktextbuffer.c b/gtk/gtktextbuffer.c index e6c1a6c62f..31d4bc9911 100644 --- a/gtk/gtktextbuffer.c +++ b/gtk/gtktextbuffer.c @@ -3054,7 +3054,7 @@ gtk_text_buffer_remove_all_tags (GtkTextBuffer *buffer, * * Before the 3.20 version, it was not allowed to pass an invalid location. * - * Since the 3.20 version, if @line_number is greater than the number of lines + * If @line_number is greater than the number of lines * in the @buffer, the end iterator is returned. And if @char_offset is off the * end of the line, the iterator at the end of the line is returned. **/ @@ -3098,9 +3098,7 @@ gtk_text_buffer_get_iter_at_line_offset (GtkTextBuffer *buffer, * @byte_index must be the start of a UTF-8 character. Note bytes, not * characters; UTF-8 may encode one character as multiple bytes. * - * Before the 3.20 version, it was not allowed to pass an invalid location. - * - * Since the 3.20 version, if @line_number is greater than the number of lines + * If @line_number is greater than the number of lines * in the @buffer, the end iterator is returned. And if @byte_index is off the * end of the line, the iterator at the end of the line is returned. **/ diff --git a/gtk/gtktexthandle.c b/gtk/gtktexthandle.c index ff16630e5d..a78691cc78 100644 --- a/gtk/gtktexthandle.c +++ b/gtk/gtktexthandle.c @@ -23,6 +23,8 @@ #include "gtkwindowprivate.h" #include "gtkcssnodeprivate.h" #include "gtkwidgetprivate.h" +#include "gtkgizmoprivate.h" +#include "gtkrendericonprivate.h" #include "gtkintl.h" #include <gtk/gtk.h> @@ -93,30 +95,6 @@ _gtk_text_handle_get_size (GtkTextHandle *handle, NULL); } -static void -_gtk_text_handle_draw (GtkTextHandle *handle, - cairo_t *cr, - GtkTextHandlePosition pos) -{ - GtkTextHandlePrivate *priv; - HandleWindow *handle_window; - GtkStyleContext *context; - gint width, height; - - priv = handle->priv; - handle_window = &priv->windows[pos]; - - context = gtk_widget_get_style_context (handle_window->widget); - _gtk_text_handle_get_size (handle, pos, &width, &height); - - cairo_save (cr); - cairo_translate (cr, handle_window->border.left, handle_window->border.top); - - gtk_render_handle (context, cr, 0, 0, width, height); - - cairo_restore (cr); -} - static gint _text_handle_pos_from_widget (GtkTextHandle *handle, GtkWidget *widget) @@ -131,28 +109,6 @@ _text_handle_pos_from_widget (GtkTextHandle *handle, return -1; } -static gboolean -gtk_text_handle_widget_draw (GtkWidget *widget, - cairo_t *cr, - GtkTextHandle *handle) -{ - gint pos; - - pos = _text_handle_pos_from_widget (handle, widget); - - if (pos < 0) - return FALSE; - -#if 0 - /* Show the invisible border */ - cairo_set_source_rgba (cr, 1, 0, 0, 0.5); - cairo_paint (cr); -#endif - - _gtk_text_handle_draw (handle, cr, pos); - return TRUE; -} - static void gtk_text_handle_set_state (GtkTextHandle *handle, gint pos, @@ -181,101 +137,86 @@ gtk_text_handle_unset_state (GtkTextHandle *handle, gtk_widget_queue_draw (priv->windows[pos].widget); } -static gboolean -gtk_text_handle_widget_event (GtkWidget *widget, - GdkEvent *event, - GtkTextHandle *handle) +static void +handle_drag_begin (GtkGestureDrag *gesture, + gdouble x, + gdouble y, + GtkTextHandle *handle) { - GtkTextHandlePrivate *priv; - GdkEventType event_type; - gdouble event_x, event_y; - guint state; + GtkTextHandlePrivate *priv = handle->priv; + GtkWidget *widget; gint pos; - GdkCrossingMode mode; - priv = handle->priv; + widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (gesture)); pos = _text_handle_pos_from_widget (handle, widget); - if (pos < 0) - return FALSE; - - event_type = gdk_event_get_event_type (event); - gdk_event_get_coords (event, &event_x, &event_y); - gdk_event_get_crossing_mode (event, &mode); - - if (event_type == GDK_BUTTON_PRESS) - { - priv->windows[pos].dx = event_x; - priv->windows[pos].dy = event_y; - priv->windows[pos].dragged = TRUE; - gtk_text_handle_set_state (handle, pos, GTK_STATE_FLAG_ACTIVE); - g_signal_emit (handle, signals[DRAG_STARTED], 0, pos); - } - else if (event_type == GDK_BUTTON_RELEASE) - { - g_signal_emit (handle, signals[DRAG_FINISHED], 0, pos); - priv->windows[pos].dragged = FALSE; - gtk_text_handle_unset_state (handle, pos, GTK_STATE_FLAG_ACTIVE); - } - else if (event_type == GDK_ENTER_NOTIFY) - gtk_text_handle_set_state (handle, pos, GTK_STATE_FLAG_PRELIGHT); - else if (event_type == GDK_LEAVE_NOTIFY) - { - if (!priv->windows[pos].dragged && - (mode == GDK_CROSSING_NORMAL || - mode == GDK_CROSSING_UNGRAB)) - gtk_text_handle_unset_state (handle, pos, GTK_STATE_FLAG_PRELIGHT); - } - else if (event_type == GDK_MOTION_NOTIFY && - gdk_event_get_state (event, &state) && - state & GDK_BUTTON1_MASK && - priv->windows[pos].dragged) - { - gint x, y, handle_width, handle_height; - cairo_rectangle_int_t rect; - GtkAllocation allocation; - GtkWidget *window; - - window = gtk_widget_get_parent (priv->windows[pos].widget); - gtk_widget_get_allocation (priv->windows[pos].widget, &allocation); - _gtk_text_handle_get_size (handle, pos, &handle_width, &handle_height); - - _gtk_window_get_popover_position (GTK_WINDOW (window), - priv->windows[pos].widget, - NULL, &rect); - - x = rect.x + event_x - priv->windows[pos].dx; - y = rect.y + event_y - priv->windows[pos].dy + - priv->windows[pos].border.top / 2; - - if (pos == GTK_TEXT_HANDLE_POSITION_CURSOR && - priv->mode == GTK_TEXT_HANDLE_MODE_CURSOR) - x += handle_width / 2; - else if ((pos == GTK_TEXT_HANDLE_POSITION_CURSOR && - priv->windows[pos].dir == GTK_TEXT_DIR_RTL) || - (pos == GTK_TEXT_HANDLE_POSITION_SELECTION_START && - priv->windows[pos].dir != GTK_TEXT_DIR_RTL)) - x += handle_width; - - gtk_widget_translate_coordinates (window, priv->parent, x, y, &x, &y); - g_signal_emit (handle, signals[HANDLE_DRAGGED], 0, pos, x, y); - } + if (pos == GTK_TEXT_HANDLE_POSITION_CURSOR && + priv->mode == GTK_TEXT_HANDLE_MODE_CURSOR) + x -= gtk_widget_get_width (widget) / 2; + else if ((pos == GTK_TEXT_HANDLE_POSITION_CURSOR && + priv->windows[pos].dir == GTK_TEXT_DIR_RTL) || + (pos == GTK_TEXT_HANDLE_POSITION_SELECTION_START && + priv->windows[pos].dir != GTK_TEXT_DIR_RTL)) + x -= gtk_widget_get_width (widget); + + y += priv->windows[pos].border.top / 2; + + priv->windows[pos].dx = x; + priv->windows[pos].dy = y; + priv->windows[pos].dragged = TRUE; + gtk_text_handle_set_state (handle, pos, GTK_STATE_FLAG_ACTIVE); + g_signal_emit (handle, signals[DRAG_STARTED], 0, pos); +} - return TRUE; +static void +handle_drag_update (GtkGestureDrag *gesture, + gdouble offset_x, + gdouble offset_y, + GtkTextHandle *handle) +{ + GtkTextHandlePrivate *priv = handle->priv; + gdouble start_x, start_y; + gint pos, x, y; + + pos = _text_handle_pos_from_widget (handle, + gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (gesture))); + gtk_gesture_drag_get_start_point (gesture, &start_x, &start_y); + + gtk_widget_translate_coordinates (priv->windows[pos].widget, priv->parent, + start_x + offset_x - priv->windows[pos].dx, + start_y + offset_y - priv->windows[pos].dy, + &x, &y); + g_signal_emit (handle, signals[HANDLE_DRAGGED], 0, pos, x, y); } static void -gtk_text_handle_widget_style_updated (GtkWidget *widget, - GtkTextHandle *handle) +handle_drag_end (GtkGestureDrag *gesture, + gdouble offset_x, + gdouble offset_y, + GtkTextHandle *handle) { - GtkTextHandlePrivate *priv; + GtkTextHandlePrivate *priv = handle->priv; + gint pos; - priv = handle->priv; - gtk_style_context_set_parent (gtk_widget_get_style_context (widget), - gtk_widget_get_style_context (priv->parent)); + pos = _text_handle_pos_from_widget (handle, + gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (gesture))); + g_signal_emit (handle, signals[DRAG_FINISHED], 0, pos); + priv->windows[pos].dragged = FALSE; + gtk_text_handle_unset_state (handle, pos, GTK_STATE_FLAG_ACTIVE); +} - _gtk_text_handle_update (handle, GTK_TEXT_HANDLE_POSITION_SELECTION_START); - _gtk_text_handle_update (handle, GTK_TEXT_HANDLE_POSITION_SELECTION_END); +static gboolean +snapshot_func (GtkGizmo *gizmo, + GtkSnapshot *snapshot) +{ + GtkCssStyle *style = gtk_css_node_get_style (gtk_widget_get_css_node (GTK_WIDGET (gizmo))); + + gtk_css_style_snapshot_icon (style, + snapshot, + gtk_widget_get_width (GTK_WIDGET (gizmo)), + gtk_widget_get_height (GTK_WIDGET (gizmo)), + GTK_CSS_IMAGE_BUILTIN_HANDLE); + return TRUE; } static GtkWidget * @@ -290,18 +231,21 @@ _gtk_text_handle_ensure_widget (GtkTextHandle *handle, { GtkWidget *widget, *window; GtkStyleContext *context; + GtkEventController *controller; - widget = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + widget = gtk_gizmo_new (I_("cursor-handle"), + NULL, NULL, snapshot_func); gtk_widget_set_direction (widget, priv->windows[pos].dir); - g_signal_connect (widget, "draw", - G_CALLBACK (gtk_text_handle_widget_draw), handle); - g_signal_connect (widget, "event", - G_CALLBACK (gtk_text_handle_widget_event), handle); - g_signal_connect (widget, "style-updated", - G_CALLBACK (gtk_text_handle_widget_style_updated), - handle); + controller = GTK_EVENT_CONTROLLER (gtk_gesture_drag_new ()); + g_signal_connect (controller, "drag-begin", + G_CALLBACK (handle_drag_begin), handle); + g_signal_connect (controller, "drag-update", + G_CALLBACK (handle_drag_update), handle); + g_signal_connect (controller, "drag-end", + G_CALLBACK (handle_drag_end), handle); + gtk_widget_add_controller (widget, controller); priv->windows[pos].widget = g_object_ref_sink (widget); window = gtk_widget_get_ancestor (priv->parent, GTK_TYPE_WINDOW); @@ -309,7 +253,6 @@ _gtk_text_handle_ensure_widget (GtkTextHandle *handle, context = gtk_widget_get_style_context (widget); gtk_style_context_set_parent (context, gtk_widget_get_style_context (priv->parent)); - gtk_css_node_set_name (gtk_widget_get_css_node (widget), I_("cursor-handle")); if (pos == GTK_TEXT_HANDLE_POSITION_SELECTION_END) { gtk_style_context_add_class (context, GTK_STYLE_CLASS_BOTTOM); diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index d242059ffd..1c6aa8f2db 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -417,14 +417,14 @@ static GtkTextBuffer* gtk_text_view_create_buffer (GtkTextView *text_view); /* Source side drag signals */ static void gtk_text_view_drag_begin (GtkWidget *widget, - GdkDragContext *context); + GdkDrag *drag); static void gtk_text_view_drag_end (GtkWidget *widget, - GdkDragContext *context); + GdkDrag *drag); static void gtk_text_view_drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data); static void gtk_text_view_drag_data_delete (GtkWidget *widget, - GdkDragContext *context); + GdkDrag *drag); /* Target side drag signals */ static void gtk_text_view_drag_leave (GtkWidget *widget, @@ -7585,7 +7585,7 @@ gtk_text_view_im_context_filter_keypress (GtkTextView *text_view, static void drag_begin_cb (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, gpointer data) { GtkTextView *text_view = GTK_TEXT_VIEW (widget); @@ -7601,12 +7601,12 @@ drag_begin_cb (GtkWidget *widget, if (paintable) { - gtk_drag_set_icon_paintable (context, paintable, 0, 0); + gtk_drag_set_icon_paintable (drag, paintable, 0, 0); g_object_unref (paintable); } else { - gtk_drag_set_icon_default (context); + gtk_drag_set_icon_default (drag); } } @@ -7632,14 +7632,14 @@ gtk_text_view_start_selection_dnd (GtkTextView *text_view, static void gtk_text_view_drag_begin (GtkWidget *widget, - GdkDragContext *context) + GdkDrag *drag) { /* do nothing */ } static void gtk_text_view_drag_end (GtkWidget *widget, - GdkDragContext *context) + GdkDrag *drag) { GtkTextView *text_view; @@ -7649,7 +7649,7 @@ gtk_text_view_drag_end (GtkWidget *widget, static void gtk_text_view_drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data) { GtkTextView *text_view = GTK_TEXT_VIEW (widget); @@ -7685,7 +7685,7 @@ gtk_text_view_drag_data_get (GtkWidget *widget, static void gtk_text_view_drag_data_delete (GtkWidget *widget, - GdkDragContext *context) + GdkDrag *drag) { gtk_text_buffer_delete_selection (GTK_TEXT_VIEW (widget)->priv->buffer, TRUE, GTK_TEXT_VIEW (widget)->priv->editable); @@ -7861,7 +7861,7 @@ static GdkDragAction gtk_text_view_get_action (GtkWidget *textview, GdkDrop *drop) { - GdkDragContext *drag = gdk_drop_get_drag (drop); + GdkDrag *drag = gdk_drop_get_drag (drop); GtkWidget *source_widget = gtk_drag_get_source_widget (drag); GdkDragAction actions; diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 87bb56ce88..785332448a 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -616,14 +616,14 @@ static void gtk_tree_view_forall (GtkContainer *container, /* Source side drag signals */ static void gtk_tree_view_drag_begin (GtkWidget *widget, - GdkDragContext *context); + GdkDrag *drag); static void gtk_tree_view_drag_end (GtkWidget *widget, - GdkDragContext *context); + GdkDrag *drag); static void gtk_tree_view_drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data); static void gtk_tree_view_drag_data_delete (GtkWidget *widget, - GdkDragContext *context); + GdkDrag *drag); /* Target side drag signals */ static void gtk_tree_view_drag_leave (GtkWidget *widget, @@ -2367,7 +2367,9 @@ gtk_tree_view_calculate_width_before_expander (GtkTreeView *tree_view) static void gtk_tree_view_size_allocate_columns (GtkWidget *widget) { - GtkTreeView *tree_view; + GtkTreeView *tree_view = GTK_TREE_VIEW (widget); + GtkTreeViewPrivate *priv = gtk_tree_view_get_instance_private (tree_view); + const int x_offset = - gtk_adjustment_get_value (priv->hadjustment); GList *list, *first_column, *last_column; GtkTreeViewColumn *column; gint widget_width, width = 0; @@ -2376,8 +2378,6 @@ gtk_tree_view_size_allocate_columns (GtkWidget *widget) gint number_of_expand_columns = 0; gboolean rtl; gboolean update_expand; - - tree_view = GTK_TREE_VIEW (widget); for (last_column = g_list_last (tree_view->priv->columns); last_column && @@ -2488,9 +2488,11 @@ gtk_tree_view_size_allocate_columns (GtkWidget *widget) column_width += extra_for_last; if (rtl) - _gtk_tree_view_column_allocate (column, widget_width - width - column_width, column_width, tree_view->priv->header_height); + _gtk_tree_view_column_allocate (column, widget_width - width - column_width + x_offset, + column_width, tree_view->priv->header_height); else - _gtk_tree_view_column_allocate (column, width, column_width, tree_view->priv->header_height); + _gtk_tree_view_column_allocate (column, width + x_offset, + column_width, tree_view->priv->header_height); width += column_width; } @@ -4553,6 +4555,8 @@ gtk_tree_view_bin_snapshot (GtkWidget *widget, GtkSnapshot *snapshot) { GtkTreeView *tree_view = GTK_TREE_VIEW (widget); + GtkTreeViewPrivate *priv = gtk_tree_view_get_instance_private (tree_view); + const int x_scroll_offset = - gtk_adjustment_get_value (priv->hadjustment); GtkTreePath *path; GtkRBTree *tree; GList *list; @@ -4673,7 +4677,7 @@ gtk_tree_view_bin_snapshot (GtkWidget *widget, max_height = gtk_tree_view_get_row_height (tree_view, node); - cell_offset = 0; + cell_offset = x_scroll_offset; background_area.y = y_offset + clip.y; background_area.height = max_height; @@ -4746,7 +4750,7 @@ gtk_tree_view_bin_snapshot (GtkWidget *widget, else flags &= ~GTK_CELL_RENDERER_EXPANDED; - background_area.x = cell_offset; + background_area.x = cell_offset; background_area.width = width; cell_area = background_area; @@ -4783,6 +4787,9 @@ gtk_tree_view_bin_snapshot (GtkWidget *widget, continue; } + background_area.x -= x_scroll_offset; + cell_area.x -= x_scroll_offset; + gtk_tree_view_column_cell_set_cell_data (column, tree_view->priv->model, &iter, @@ -6834,21 +6841,21 @@ _gtk_tree_view_column_autosize (GtkTreeView *tree_view, /* Drag-and-drop */ static void -set_source_row (GdkDragContext *context, +set_source_row (GdkDrag *drag, GtkTreeModel *model, GtkTreePath *source_row) { - g_object_set_data_full (G_OBJECT (context), + g_object_set_data_full (G_OBJECT (drag), I_("gtk-tree-view-source-row"), source_row ? gtk_tree_row_reference_new (model, source_row) : NULL, (GDestroyNotify) (source_row ? gtk_tree_row_reference_free : NULL)); } static GtkTreePath* -get_source_row (GdkDragContext *context) +get_source_row (GdkDrag *drag) { GtkTreeRowReference *ref = - g_object_get_data (G_OBJECT (context), "gtk-tree-view-source-row"); + g_object_get_data (G_OBJECT (drag), "gtk-tree-view-source-row"); if (ref) return gtk_tree_row_reference_get_path (ref); @@ -7321,7 +7328,7 @@ gtk_tree_view_maybe_begin_dragging_row (GtkTreeView *tree_view) { GtkWidget *widget = GTK_WIDGET (tree_view); gdouble start_x, start_y, offset_x, offset_y; - GdkDragContext *context; + GdkDrag *drag; TreeViewDragInfo *di; GtkTreePath *path = NULL; gint button; @@ -7378,13 +7385,13 @@ gtk_tree_view_maybe_begin_dragging_row (GtkTreeView *tree_view) gtk_gesture_set_state (GTK_GESTURE (tree_view->priv->drag_gesture), GTK_EVENT_SEQUENCE_CLAIMED); - context = gtk_drag_begin_with_coordinates (widget, - gtk_gesture_get_device (GTK_GESTURE (tree_view->priv->drag_gesture)), - gtk_drag_source_get_target_list (widget), - di->source_actions, - start_x, start_y); + drag = gtk_drag_begin_with_coordinates (widget, + gtk_gesture_get_device (GTK_GESTURE (tree_view->priv->drag_gesture)), + gtk_drag_source_get_target_list (widget), + di->source_actions, + start_x, start_y); - set_source_row (context, model, path); + set_source_row (drag, model, path); out: if (path) @@ -7396,7 +7403,7 @@ gtk_tree_view_maybe_begin_dragging_row (GtkTreeView *tree_view) static void gtk_tree_view_drag_begin (GtkWidget *widget, - GdkDragContext *context) + GdkDrag *drag) { GtkTreeView *tree_view; GtkTreePath *path = NULL; @@ -7429,10 +7436,9 @@ gtk_tree_view_drag_begin (GtkWidget *widget, if (!path) return; - row_pix = gtk_tree_view_create_row_drag_icon (tree_view, - path); + row_pix = gtk_tree_view_create_row_drag_icon (tree_view, path); - gtk_drag_set_icon_paintable (context, row_pix, tree_view->priv->press_start_x + 1, 1); + gtk_drag_set_icon_paintable (drag, row_pix, tree_view->priv->press_start_x + 1, 1); g_object_unref (row_pix); gtk_tree_path_free (path); @@ -7440,7 +7446,7 @@ gtk_tree_view_drag_begin (GtkWidget *widget, static void gtk_tree_view_drag_end (GtkWidget *widget, - GdkDragContext *context) + GdkDrag *drag) { GtkTreeView *tree_view = GTK_TREE_VIEW (widget); @@ -7451,7 +7457,7 @@ gtk_tree_view_drag_end (GtkWidget *widget, /* Default signal implementations for the drag signals */ static void gtk_tree_view_drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data) { GtkTreeView *tree_view; @@ -7471,7 +7477,7 @@ gtk_tree_view_drag_data_get (GtkWidget *widget, if (di == NULL) return; - source_row = get_source_row (context); + source_row = get_source_row (drag); if (source_row == NULL) return; @@ -7502,7 +7508,7 @@ gtk_tree_view_drag_data_get (GtkWidget *widget, static void gtk_tree_view_drag_data_delete (GtkWidget *widget, - GdkDragContext *context) + GdkDrag *drag) { TreeViewDragInfo *di; GtkTreeModel *model; @@ -7520,17 +7526,16 @@ gtk_tree_view_drag_data_delete (GtkWidget *widget, if (di == NULL) return; - source_row = get_source_row (context); + source_row = get_source_row (drag); if (source_row == NULL) return; - gtk_tree_drag_source_drag_data_delete (GTK_TREE_DRAG_SOURCE (model), - source_row); + gtk_tree_drag_source_drag_data_delete (GTK_TREE_DRAG_SOURCE (model), source_row); gtk_tree_path_free (source_row); - set_source_row (context, NULL, NULL); + set_source_row (drag, NULL, NULL); } static void @@ -7687,7 +7692,7 @@ static GdkDragAction gtk_tree_view_get_action (GtkWidget *treeview, GdkDrop *drop) { - GdkDragContext *drag = gdk_drop_get_drag (drop); + GdkDrag *drag = gdk_drop_get_drag (drop); GtkWidget *source_widget = gtk_drag_get_source_widget (drag); GdkDragAction actions; @@ -10699,7 +10704,7 @@ gtk_tree_view_adjustment_changed (GtkAdjustment *adjustment, } } - gtk_widget_queue_draw (GTK_WIDGET (tree_view)); + gtk_widget_queue_allocate (GTK_WIDGET (tree_view)); } diff --git a/gtk/gtktreeviewcolumn.c b/gtk/gtktreeviewcolumn.c index af4531ebda..a4ae3145dd 100644 --- a/gtk/gtktreeviewcolumn.c +++ b/gtk/gtktreeviewcolumn.c @@ -34,6 +34,7 @@ #include "gtktreeview.h" #include "gtktypebuiltins.h" #include "gtkwidgetprivate.h" +#include "gtkgesturedrag.h" #include "a11y/gtktreeviewaccessibleprivate.h" @@ -86,9 +87,15 @@ static void gtk_tree_view_column_create_button (GtkTreeViewColum static void gtk_tree_view_column_update_button (GtkTreeViewColumn *tree_column); /* Button signal handlers */ -static gint gtk_tree_view_column_button_event (GtkWidget *widget, - GdkEvent *event, - gpointer data); +static void column_button_drag_begin (GtkGestureDrag *gesture, + gdouble x, + gdouble y, + GtkTreeViewColumn *column); +static void column_button_drag_update (GtkGestureDrag *gesture, + gdouble offset_x, + gdouble offset_y, + GtkTreeViewColumn *column); + static void gtk_tree_view_column_button_clicked (GtkWidget *widget, gpointer data); static gboolean gtk_tree_view_column_mnemonic_activate (GtkWidget *widget, @@ -810,6 +817,7 @@ static void gtk_tree_view_column_create_button (GtkTreeViewColumn *tree_column) { GtkTreeViewColumnPrivate *priv = tree_column->priv; + GtkEventController *controller; GtkWidget *child; GtkWidget *hbox; @@ -818,13 +826,18 @@ gtk_tree_view_column_create_button (GtkTreeViewColumn *tree_column) priv->button = gtk_button_new (); g_object_ref_sink (priv->button); - g_signal_connect (priv->button, "event", - G_CALLBACK (gtk_tree_view_column_button_event), - tree_column); g_signal_connect (priv->button, "clicked", G_CALLBACK (gtk_tree_view_column_button_clicked), tree_column); + controller = GTK_EVENT_CONTROLLER (gtk_gesture_drag_new ()); + g_signal_connect (controller, "drag-begin", + G_CALLBACK (column_button_drag_begin), tree_column); + g_signal_connect (controller, "drag-update", + G_CALLBACK (column_button_drag_update), tree_column); + gtk_event_controller_set_propagation_phase (controller, GTK_PHASE_CAPTURE); + gtk_widget_add_controller (priv->button, controller); + priv->frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (priv->frame), GTK_SHADOW_NONE); gtk_widget_set_hexpand (priv->frame, TRUE); @@ -1008,63 +1021,42 @@ gtk_tree_view_column_update_button (GtkTreeViewColumn *tree_column) /* Button signal handlers */ -static gint -gtk_tree_view_column_button_event (GtkWidget *widget, - GdkEvent *event, - gpointer data) +static void +column_button_drag_begin (GtkGestureDrag *gesture, + gdouble x, + gdouble y, + GtkTreeViewColumn *column) { - GtkTreeViewColumn *column = (GtkTreeViewColumn *) data; - GtkTreeViewColumnPrivate *priv = column->priv; - GdkEventType event_type; - guint button; - gdouble x, y; - - g_return_val_if_fail (event != NULL, FALSE); - - event_type = gdk_event_get_event_type (event); - gdk_event_get_button (event, &button); - gdk_event_get_coords (event, &x, &y); + GtkTreeViewColumnPrivate *priv = column->priv; - if (event_type == GDK_BUTTON_PRESS && - priv->reorderable && - button == GDK_BUTTON_PRIMARY) + if (!priv->reorderable) { - priv->maybe_reordered = TRUE; - priv->drag_x = x; - priv->drag_y = y; - gtk_widget_grab_focus (widget); + gtk_gesture_set_state (GTK_GESTURE (gesture), + GTK_EVENT_SEQUENCE_DENIED); + return; } - if (event_type == GDK_BUTTON_RELEASE || - event_type == GDK_LEAVE_NOTIFY) - priv->maybe_reordered = FALSE; - - if (event_type == GDK_MOTION_NOTIFY && - priv->maybe_reordered && - gtk_drag_check_threshold (widget, priv->drag_x, priv->drag_y, (gint) x, (gint) y)) - { - priv->maybe_reordered = FALSE; - _gtk_tree_view_column_start_drag (GTK_TREE_VIEW (priv->tree_view), column, - gdk_event_get_device (event)); - return TRUE; - } + priv->drag_x = x; + priv->drag_y = y; + gtk_widget_grab_focus (priv->button); +} + +static void +column_button_drag_update (GtkGestureDrag *gesture, + gdouble offset_x, + gdouble offset_y, + GtkTreeViewColumn *column) +{ + GtkTreeViewColumnPrivate *priv = column->priv; - if (priv->clickable == FALSE) + if (gtk_drag_check_threshold (priv->button, 0, 0, offset_x, offset_y)) { - switch ((guint) event_type) - { - case GDK_BUTTON_PRESS: - case GDK_BUTTON_RELEASE: - return GDK_EVENT_STOP; - default: - return GDK_EVENT_PROPAGATE; - } + gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED); + _gtk_tree_view_column_start_drag (GTK_TREE_VIEW (priv->tree_view), column, + gtk_gesture_get_device (GTK_GESTURE (gesture))); } - - return GDK_EVENT_PROPAGATE; } - static void gtk_tree_view_column_button_clicked (GtkWidget *widget, gpointer data) { diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 6f324522c2..b4ae9442e4 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -231,7 +231,7 @@ * Otherwise, you would not properly consider widget margins, * #GtkSizeGroup, and so forth. * - * Since 3.10 GTK+ also supports baseline vertical alignment of widgets. This + * GTK+ also supports baseline vertical alignment of widgets. This * means that widgets are positioned such that the typographical baseline of * widgets in the same row are aligned. This happens if a widget supports baselines, * has a vertical alignment of %GTK_ALIGN_BASELINE, and is inside a widget @@ -1743,7 +1743,7 @@ gtk_widget_class_init (GtkWidgetClass *klass) /** * GtkWidget::drag-begin: * @widget: the object which received the signal - * @context: the drag context + * @context: the drag context * * The ::drag-begin signal is emitted on the drag source when a drag is * started. A typical reason to connect to this signal is to set up a @@ -1761,7 +1761,7 @@ gtk_widget_class_init (GtkWidgetClass *klass) NULL, NULL, NULL, G_TYPE_NONE, 1, - GDK_TYPE_DRAG_CONTEXT); + GDK_TYPE_DRAG); /** * GtkWidget::drag-end: @@ -1780,7 +1780,7 @@ gtk_widget_class_init (GtkWidgetClass *klass) NULL, NULL, NULL, G_TYPE_NONE, 1, - GDK_TYPE_DRAG_CONTEXT); + GDK_TYPE_DRAG); /** * GtkWidget::drag-data-delete: @@ -1800,7 +1800,7 @@ gtk_widget_class_init (GtkWidgetClass *klass) NULL, NULL, NULL, G_TYPE_NONE, 1, - GDK_TYPE_DRAG_CONTEXT); + GDK_TYPE_DRAG); /** * GtkWidget::drag-failed: @@ -1824,7 +1824,7 @@ gtk_widget_class_init (GtkWidgetClass *klass) _gtk_boolean_handled_accumulator, NULL, _gtk_marshal_BOOLEAN__OBJECT_ENUM, G_TYPE_BOOLEAN, 2, - GDK_TYPE_DRAG_CONTEXT, + GDK_TYPE_DRAG, GTK_TYPE_DRAG_RESULT); /** @@ -1982,7 +1982,7 @@ gtk_widget_class_init (GtkWidgetClass *klass) NULL, NULL, _gtk_marshal_VOID__OBJECT_BOXED, G_TYPE_NONE, 2, - GDK_TYPE_DRAG_CONTEXT, + GDK_TYPE_DRAG, GTK_TYPE_SELECTION_DATA | G_SIGNAL_TYPE_STATIC_SCOPE); /** @@ -2515,7 +2515,6 @@ _gtk_widget_emulate_press (GtkWidget *widget, gtk_widget_get_toplevel (event_widget), x, y, &x, &y); - gdk_event_set_coords (event, x, y); if (event->any.type == GDK_TOUCH_BEGIN || event->any.type == GDK_TOUCH_UPDATE || @@ -2535,8 +2534,6 @@ _gtk_widget_emulate_press (GtkWidget *widget, press = gdk_event_new (GDK_BUTTON_PRESS); press->any.surface = g_object_ref (event->any.surface); press->button.time = event->motion.time; - press->button.x = event->motion.x; - press->button.y = event->motion.y; press->button.x_root = event->motion.x_root; press->button.y_root = event->motion.y_root; press->button.state = event->motion.state; @@ -2563,6 +2560,8 @@ _gtk_widget_emulate_press (GtkWidget *widget, else return; + gdk_event_set_coords (press, x, y); + press->any.send_event = TRUE; next_child = event_widget; parent = _gtk_widget_get_parent (next_child); @@ -13012,96 +13011,6 @@ gtk_widget_maybe_add_debug_render_nodes (GtkWidget *widget, /* We should be offset to priv->allocation at this point */ - if (GTK_DISPLAY_DEBUG_CHECK (display, LAYOUT)) - { - graphene_rect_t bounds; - GdkRGBA widget_margin_color = {0.7, 0, 0, 0.6}; - GdkRGBA margin_color = {0.7, 0.7, 0, 0.6}; - GdkRGBA padding_color = {0.7, 0, 0.7, 0.6}; - - style = gtk_css_node_get_style (priv->cssnode); - get_box_margin (style, &margin); - get_box_border (style, &border); - get_box_padding (style, &padding); - - gtk_snapshot_push_debug (snapshot, "Widget layout debugging"); - - /* Widget margins */ - graphene_rect_init (&bounds, - 0, -priv->margin.top, - priv->allocation.width, priv->margin.top); - gtk_snapshot_append_color (snapshot, &widget_margin_color, &bounds); - - graphene_rect_init (&bounds, - 0, priv->allocation.height, - priv->allocation.width, priv->margin.bottom); - gtk_snapshot_append_color (snapshot, &widget_margin_color, &bounds); - - graphene_rect_init (&bounds, - -priv->margin.left, 0, - priv->margin.left, priv->allocation.height); - gtk_snapshot_append_color (snapshot, &widget_margin_color, &bounds); - - graphene_rect_init (&bounds, - priv->allocation.width, 0, - priv->margin.right, priv->allocation.height); - gtk_snapshot_append_color (snapshot, &widget_margin_color, &bounds); - - - /* CSS Margins */ - graphene_rect_init (&bounds, - 0, 0, - priv->allocation.width, margin.top); - gtk_snapshot_append_color (snapshot, &margin_color, &bounds); - - graphene_rect_init (&bounds, - 0, priv->allocation.height - margin.bottom, - priv->allocation.width, margin.bottom); - gtk_snapshot_append_color (snapshot, &margin_color, &bounds); - - graphene_rect_init (&bounds, - 0, margin.top, - margin.left, priv->allocation.height - margin.top - margin.bottom); - gtk_snapshot_append_color (snapshot, &margin_color, &bounds); - - graphene_rect_init (&bounds, - priv->allocation.width - margin.right, margin.top, - margin.right, priv->allocation.height - margin.top - margin.bottom); - gtk_snapshot_append_color (snapshot, &margin_color, &bounds); - - - /* Padding */ - graphene_rect_init (&bounds, - margin.left + border.left, - margin.top + border.top, - priv->allocation.width - margin.left - margin.right - border.left - border.right, - padding.top); - gtk_snapshot_append_color (snapshot, &padding_color, &bounds); - - graphene_rect_init (&bounds, - margin.left + border.left, - priv->allocation.height - margin.bottom - border.bottom - padding.bottom, - priv->allocation.width - margin.left - margin.right - border.left - border.right, - padding.bottom); - gtk_snapshot_append_color (snapshot, &padding_color, &bounds); - - graphene_rect_init (&bounds, - margin.left + border.left, - margin.top + border.top + padding.top, - padding.left, - priv->allocation.height - margin.top - margin.bottom - border.top - border.bottom - padding.top - padding.bottom); - gtk_snapshot_append_color (snapshot, &padding_color, &bounds); - - graphene_rect_init (&bounds, - priv->allocation.width - margin.right - border.right - padding.right, - margin.top + border.top + padding.top, - padding.right, - priv->allocation.height - margin.top - margin.bottom - border.top - border.bottom - padding.top - padding.bottom); - gtk_snapshot_append_color (snapshot, &padding_color, &bounds); - - gtk_snapshot_pop (snapshot); - } - if (GTK_DISPLAY_DEBUG_CHECK (display, BASELINES)) { int baseline = gtk_widget_get_allocated_baseline (widget); @@ -13160,6 +13069,10 @@ gtk_widget_create_render_node (GtkWidget *widget, GtkBorder margin, border, padding; GtkSnapshot *snapshot; + opacity = priv->alpha / 255.0; + if (opacity <= 0.0) + return NULL; + snapshot = gtk_snapshot_new (); _gtk_widget_get_allocation (widget, &allocation); @@ -13175,7 +13088,6 @@ gtk_widget_create_render_node (GtkWidget *widget, get_box_margin (style, &margin); get_box_border (style, &border); get_box_padding (style, &padding); - opacity = priv->alpha / 255.0; if (opacity < 1.0) gtk_snapshot_push_opacity (snapshot, opacity); @@ -13224,7 +13136,6 @@ gtk_widget_snapshot (GtkWidget *widget, GtkSnapshot *snapshot) { GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget); - double opacity; if (!_gtk_widget_is_drawable (widget)) return; @@ -13235,10 +13146,6 @@ gtk_widget_snapshot (GtkWidget *widget, return; } - opacity = priv->alpha / 255.0; - if (opacity <= 0.0) - return; - if (priv->draw_needed) { GskRenderNode *render_node; diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h index 5989923f66..5c240d0fa2 100644 --- a/gtk/gtkwidget.h +++ b/gtk/gtkwidget.h @@ -293,15 +293,15 @@ struct _GtkWidgetClass GdkEvent *event); /* Source side drag signals */ - void (* drag_begin) (GtkWidget *widget, - GdkDragContext *context); + void (* drag_begin) (GtkWidget *widget, + GdkDrag *drag); void (* drag_end) (GtkWidget *widget, - GdkDragContext *context); + GdkDrag *drag); void (* drag_data_get) (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data); void (* drag_data_delete) (GtkWidget *widget, - GdkDragContext *context); + GdkDrag *drag); /* Target side drag signals */ void (* drag_leave) (GtkWidget *widget, @@ -318,7 +318,7 @@ struct _GtkWidgetClass GdkDrop *drop, GtkSelectionData *selection_data); gboolean (* drag_failed) (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkDragResult result); /* Signals used only for keybindings */ diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index e08f8832be..012f4efa58 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -42,6 +42,7 @@ #include "gtkcssshadowsvalueprivate.h" #include "gtkcssstylepropertyprivate.h" #include "gtkdragdest.h" +#include "gtkeventcontrollerkey.h" #include "gtkgesturedrag.h" #include "gtkgesturemultipress.h" #include "gtkgestureprivate.h" @@ -278,6 +279,8 @@ typedef struct GtkGesture *multipress_gesture; GtkGesture *drag_gesture; + GtkGesture *bubble_drag_gesture; + GtkEventController *key_controller; GdkSurface *hardcoded_surface; @@ -426,11 +429,6 @@ static void gtk_window_size_allocate (GtkWidget *widget, const GtkAllocation *allocation, int baseline); static gboolean gtk_window_close_request (GtkWindow *window); -static gboolean gtk_window_emit_close_request (GtkWindow *window); -static gboolean gtk_window_configure_event (GtkWidget *widget, - GdkEvent *event); -static gboolean gtk_window_event (GtkWidget *widget, - GdkEvent *event); static void gtk_window_focus_in (GtkWidget *widget); static void gtk_window_focus_out (GtkWidget *widget); static void surface_state_changed (GtkWidget *widget); @@ -802,7 +800,6 @@ gtk_window_class_init (GtkWindowClass *klass) widget_class->realize = gtk_window_realize; widget_class->unrealize = gtk_window_unrealize; widget_class->size_allocate = gtk_window_size_allocate; - widget_class->event = gtk_window_event; widget_class->focus = gtk_window_focus; widget_class->move_focus = gtk_window_move_focus; widget_class->measure = gtk_window_measure; @@ -1600,28 +1597,30 @@ drag_gesture_update_cb (GtkGestureDrag *gesture, GdkEventSequence *sequence; gdouble start_x, start_y; gint x_root, y_root; - const GdkEvent *event; - GtkWidget *event_widget; sequence = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture)); - event = gtk_gesture_get_last_event (GTK_GESTURE (gesture), sequence); - event_widget = gtk_get_event_target (event); - /* Check whether the target widget should be left alone at handling - * the sequence, this is better done late to give room for gestures - * there to go denied. - * - * Besides claiming gestures, we must bail out too if there's gestures - * in the "none" state at this point, as those are still handling events - * and can potentially go claimed, and we don't want to stop the target - * widget from doing anything. - */ - if (event_widget != GTK_WIDGET (window) && - !gtk_widget_has_grab (event_widget) && - _gtk_widget_consumes_motion (event_widget, sequence)) + if (gtk_event_controller_get_propagation_phase (GTK_EVENT_CONTROLLER (gesture)) == GTK_PHASE_CAPTURE) { - gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_DENIED); - return; + const GdkEvent *event = gtk_gesture_get_last_event (GTK_GESTURE (gesture), sequence); + GtkWidget *event_widget = gtk_get_event_target (event); + + /* Check whether the target widget should be left alone at handling + * the sequence, this is better done late to give room for gestures + * there to go denied. + * + * Besides claiming gestures, we must bail out too if there's gestures + * in the "none" state at this point, as those are still handling events + * and can potentially go claimed, and we don't want to stop the target + * widget from doing anything. + */ + if (event_widget != GTK_WIDGET (window) && + !gtk_widget_has_grab (event_widget) && + _gtk_widget_consumes_motion (event_widget, sequence)) + { + gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_DENIED); + return; + } } gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED); @@ -1953,6 +1952,28 @@ gtk_window_init (GtkWindow *window) G_CALLBACK (device_removed_cb), window); _gtk_widget_set_captured_event_handler (widget, captured_event_cb); + + priv->key_controller = gtk_event_controller_key_new (); + g_signal_connect_swapped (priv->key_controller, "focus-in", + G_CALLBACK (gtk_window_focus_in), window); + g_signal_connect_swapped (priv->key_controller, "focus-out", + G_CALLBACK (gtk_window_focus_out), window); + gtk_widget_add_controller (widget, priv->key_controller); +} + +static GtkGesture * +create_drag_gesture (GtkWindow *window) +{ + GtkGesture *gesture; + + gesture = gtk_gesture_drag_new (); + g_signal_connect (gesture, "drag-begin", + G_CALLBACK (drag_gesture_begin_cb), window); + g_signal_connect (gesture, "drag-update", + G_CALLBACK (drag_gesture_update_cb), window); + gtk_widget_add_controller (GTK_WIDGET (window), GTK_EVENT_CONTROLLER (gesture)); + + return gesture; } static void @@ -1968,19 +1989,18 @@ gtk_window_constructed (GObject *object) priv->multipress_gesture = gtk_gesture_multi_press_new (); gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (priv->multipress_gesture), 0); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (priv->multipress_gesture), - GTK_PHASE_NONE); + GTK_PHASE_BUBBLE); g_signal_connect (priv->multipress_gesture, "pressed", G_CALLBACK (multipress_gesture_pressed_cb), object); gtk_widget_add_controller (GTK_WIDGET (object), GTK_EVENT_CONTROLLER (priv->multipress_gesture)); - priv->drag_gesture = gtk_gesture_drag_new (); + priv->drag_gesture = create_drag_gesture (window); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (priv->drag_gesture), GTK_PHASE_CAPTURE); - g_signal_connect (priv->drag_gesture, "drag-begin", - G_CALLBACK (drag_gesture_begin_cb), object); - g_signal_connect (priv->drag_gesture, "drag-update", - G_CALLBACK (drag_gesture_update_cb), object); - gtk_widget_add_controller (GTK_WIDGET (object), GTK_EVENT_CONTROLLER (priv->drag_gesture)); + + priv->bubble_drag_gesture = create_drag_gesture (window); + gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (priv->bubble_drag_gesture), + GTK_PHASE_BUBBLE); } } @@ -5892,7 +5912,7 @@ gtk_window_close_request (GtkWindow *window) return FALSE; } -static gboolean +gboolean gtk_window_emit_close_request (GtkWindow *window) { GtkWindowPrivate *priv = gtk_window_get_instance_private (window); @@ -7174,12 +7194,13 @@ gtk_window_size_allocate (GtkWidget *widget, gtk_widget_size_allocate (child, &child_allocation, -1); } -static gboolean -gtk_window_configure_event (GtkWidget *widget, - GdkEvent *event) +gboolean +gtk_window_configure (GtkWindow *window, + guint width, + guint height) { GtkAllocation allocation; - GtkWindow *window = GTK_WINDOW (widget); + GtkWidget *widget = GTK_WIDGET (window); GtkWindowPrivate *priv = gtk_window_get_instance_private (window); check_scale_changed (window); @@ -7187,9 +7208,6 @@ gtk_window_configure_event (GtkWidget *widget, if (!_gtk_widget_is_toplevel (widget)) return FALSE; - if (_gtk_widget_get_surface (widget) != event->any.surface) - return TRUE; - /* If this is a gratuitous ConfigureNotify that's already * the same as our allocation, then we can fizzle it out. * This is the case for dragging windows around. @@ -7200,8 +7218,7 @@ gtk_window_configure_event (GtkWidget *widget, */ _gtk_widget_get_allocation (widget, &allocation); if (priv->configure_request_count == 0 && - (allocation.width == ((GdkEventConfigure *)event)->width && - allocation.height == ((GdkEventConfigure *)event)->height)) + (allocation.width == width && allocation.height == height)) { return TRUE; } @@ -7429,135 +7446,6 @@ get_active_region_type (GtkWindow *window, gint x, gint y) return GTK_WINDOW_REGION_CONTENT; } -static gboolean -controller_handle_wm_event (GtkGesture *gesture, - const GdkEvent *event) -{ - GdkEventSequence *seq; - gboolean retval; - - seq = gdk_event_get_event_sequence (event); - retval = gtk_event_controller_handle_event (GTK_EVENT_CONTROLLER (gesture), - event); - - /* Reset immediately the gestures, here we don't get many guarantees - * about whether the target window event mask will be complete enough - * to keep gestures consistent, or whether any widget across the - * hierarchy will be inconsistent about event handler return values. - */ - if (gtk_gesture_get_sequence_state (gesture, seq) == GTK_EVENT_SEQUENCE_DENIED) - gtk_event_controller_reset (GTK_EVENT_CONTROLLER (gesture)); - - return retval; -} - -static gboolean -gtk_window_handle_wm_event (GtkWindow *window, - GdkEvent *event, - gboolean run_drag) -{ - GdkEventType event_type = gdk_event_get_event_type (event); - gboolean retval = GDK_EVENT_PROPAGATE; - GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - - if (event_type == GDK_BUTTON_PRESS || event_type == GDK_BUTTON_RELEASE || - event_type == GDK_TOUCH_BEGIN || event_type == GDK_TOUCH_UPDATE || - event_type == GDK_MOTION_NOTIFY || event_type == GDK_TOUCH_END) - { - if (run_drag && priv->drag_gesture) - retval |= controller_handle_wm_event (priv->drag_gesture, - (const GdkEvent*) event); - - if (priv->multipress_gesture) - retval |= controller_handle_wm_event (priv->multipress_gesture, - (const GdkEvent*) event); - } - - return retval; -} - -gboolean -_gtk_window_check_handle_wm_event (GdkEvent *event) -{ - GtkWindowPrivate *priv; - GtkWidget *widget; - GdkEventType event_type; - - widget = gtk_get_event_widget (event); - - if (!GTK_IS_WINDOW (widget)) - widget = gtk_widget_get_toplevel (widget); - - if (!GTK_IS_WINDOW (widget)) - return GDK_EVENT_PROPAGATE; - - priv = gtk_window_get_instance_private (GTK_WINDOW (widget)); - - if (!priv->multipress_gesture) - return GDK_EVENT_PROPAGATE; - - event_type = gdk_event_get_event_type (event); - - if (event_type != GDK_BUTTON_PRESS && event_type != GDK_BUTTON_RELEASE && - event_type != GDK_MOTION_NOTIFY && event_type != GDK_TOUCH_BEGIN && - event_type != GDK_TOUCH_END && event_type != GDK_TOUCH_UPDATE) - return GDK_EVENT_PROPAGATE; - - if (gtk_widget_event (widget, event)) - return GDK_EVENT_STOP; - - return gtk_window_handle_wm_event (GTK_WINDOW (widget), event, TRUE); -} - -static gboolean -gtk_window_event (GtkWidget *widget, - GdkEvent *event) -{ - GdkEventType event_type; - - event_type = gdk_event_get_event_type (event); - - if (event_type == GDK_FOCUS_CHANGE) - { - gboolean focus_in; - - gdk_event_get_focus_in (event, &focus_in); - if (focus_in) - gtk_window_focus_in (widget); - else - gtk_window_focus_out (widget); - - return GDK_EVENT_PROPAGATE; - } - else if (event_type == GDK_DELETE) - { - if (gtk_window_emit_close_request (GTK_WINDOW (widget))) - return GDK_EVENT_STOP; - } - else if (event_type == GDK_MAP) - { - if (!_gtk_widget_get_mapped (widget)) - { - /* we should be be unmapped, but are getting a MapEvent, this may happen - * to toplevel XWindows if mapping was intercepted by a window manager - * and an unmap request occoured while the MapRequestEvent was still - * being handled. we work around this situaiton here by re-requesting - * the window being unmapped. more details can be found in: - * http://bugzilla.gnome.org/show_bug.cgi?id=316180 - */ - gdk_surface_hide (_gtk_widget_get_surface (widget)); - } - } - else if (event_type == GDK_CONFIGURE) - { - return gtk_window_configure_event (widget, event); - } - else if (widget != gtk_get_event_target (event)) - return gtk_window_handle_wm_event (GTK_WINDOW (widget), event, FALSE); - - return GDK_EVENT_PROPAGATE; -} - static void gtk_window_real_activate_default (GtkWindow *window) { @@ -10046,8 +9934,6 @@ gtk_window_get_group (GtkWindow *window) * Returns whether @window has an explicit window group. * * Returns: %TRUE if @window has an explicit window group. - * - * Since 2.22 **/ gboolean gtk_window_has_group (GtkWindow *window) @@ -10718,6 +10604,7 @@ _gtk_window_set_popover_position (GtkWindow *window, data->rect = *rect; data->pos = pos; + gtk_widget_queue_resize (popover); } void diff --git a/gtk/gtkwindowprivate.h b/gtk/gtkwindowprivate.h index 658f79f628..031e90c170 100644 --- a/gtk/gtkwindowprivate.h +++ b/gtk/gtkwindowprivate.h @@ -60,7 +60,10 @@ typedef void (*GtkWindowKeysForeachFunc) (GtkWindow *window, gboolean is_mnemonic, gpointer data); -gboolean _gtk_window_check_handle_wm_event (GdkEvent *event); +gboolean gtk_window_emit_close_request (GtkWindow *window); +gboolean gtk_window_configure (GtkWindow *window, + guint width, + guint height); /* --- internal (GtkAcceleratable) --- */ gboolean _gtk_window_query_nonaccels (GtkWindow *window, diff --git a/gtk/inspector/layoutoverlay.c b/gtk/inspector/layoutoverlay.c new file mode 100644 index 0000000000..b2f860135d --- /dev/null +++ b/gtk/inspector/layoutoverlay.c @@ -0,0 +1,222 @@ + +#include "config.h" +#include "layoutoverlay.h" +#include "gtkwidgetprivate.h" +#include "gtkcssstyleprivate.h" +#include "gtkcssnodeprivate.h" +#include "gtkcssnumbervalueprivate.h" + +static const GdkRGBA WIDGET_MARGIN_COLOR = {0.7, 0, 0, 0.6}; +static const GdkRGBA MARGIN_COLOR = {0.7, 0.7, 0, 0.6}; +static const GdkRGBA PADDING_COLOR = {0.7, 0, 0.7, 0.6}; + +struct _GtkLayoutOverlay +{ + GtkInspectorOverlay parent_instance; +}; + +struct _GtkLayoutOverlayClass +{ + GtkInspectorOverlayClass parent_class; +}; + +G_DEFINE_TYPE (GtkLayoutOverlay, gtk_layout_overlay, GTK_TYPE_INSPECTOR_OVERLAY) + + +static gint +get_number (GtkCssStyle *style, + guint property) +{ + double d = _gtk_css_number_value_get (gtk_css_style_get_value (style, property), 100); + + if (d < 1) + return ceil (d); + else + return floor (d); +} + +static void +get_box_margin (GtkCssStyle *style, + GtkBorder *margin) +{ + margin->top = get_number (style, GTK_CSS_PROPERTY_MARGIN_TOP); + margin->left = get_number (style, GTK_CSS_PROPERTY_MARGIN_LEFT); + margin->bottom = get_number (style, GTK_CSS_PROPERTY_MARGIN_BOTTOM); + margin->right = get_number (style, GTK_CSS_PROPERTY_MARGIN_RIGHT); +} + +static void +get_box_border (GtkCssStyle *style, + GtkBorder *border) +{ + border->top = get_number (style, GTK_CSS_PROPERTY_BORDER_TOP_WIDTH); + border->left = get_number (style, GTK_CSS_PROPERTY_BORDER_LEFT_WIDTH); + border->bottom = get_number (style, GTK_CSS_PROPERTY_BORDER_BOTTOM_WIDTH); + border->right = get_number (style, GTK_CSS_PROPERTY_BORDER_RIGHT_WIDTH); +} + +static void +get_box_padding (GtkCssStyle *style, + GtkBorder *border) +{ + border->top = get_number (style, GTK_CSS_PROPERTY_PADDING_TOP); + border->left = get_number (style, GTK_CSS_PROPERTY_PADDING_LEFT); + border->bottom = get_number (style, GTK_CSS_PROPERTY_PADDING_BOTTOM); + border->right = get_number (style, GTK_CSS_PROPERTY_PADDING_RIGHT); +} + +static void +recurse_child_widgets (GtkWidget *widget, + GtkSnapshot *snapshot) +{ + GtkBorder margin, border, padding; + GtkBorder widget_margin; + GtkAllocation allocation; + graphene_rect_t bounds; + GtkCssStyle *style; + GtkWidget *child; + + if (!gtk_widget_get_mapped (widget)) + return; + + style = gtk_css_node_get_style (gtk_widget_get_css_node (widget)); + get_box_margin (style, &margin); + get_box_border (style, &border); + get_box_padding (style, &padding); + + /* TODO: Eh, left = start? RTL? */ + widget_margin.left = gtk_widget_get_margin_start (widget); + widget_margin.top = gtk_widget_get_margin_top (widget); + widget_margin.right = gtk_widget_get_margin_end (widget); + widget_margin.bottom = gtk_widget_get_margin_bottom (widget); + + gtk_widget_get_allocation (widget, &allocation); + + + /* Offset for all of the drawing done here. We assume cooridinates relative to + * the widget allocation, not the content allocation. */ + gtk_snapshot_offset (snapshot, allocation.x, allocation.y); + + /* Now do all the stuff */ + gtk_snapshot_push_debug (snapshot, "Widget layout debugging"); + + /* Widget margins */ + graphene_rect_init (&bounds, + 0, -widget_margin.top, + allocation.width, widget_margin.top); + gtk_snapshot_append_color (snapshot, &WIDGET_MARGIN_COLOR, &bounds); + + graphene_rect_init (&bounds, + 0, allocation.height, + allocation.width, widget_margin.bottom); + gtk_snapshot_append_color (snapshot, &WIDGET_MARGIN_COLOR, &bounds); + + graphene_rect_init (&bounds, + -widget_margin.left, 0, + widget_margin.left, allocation.height); + gtk_snapshot_append_color (snapshot, &WIDGET_MARGIN_COLOR, &bounds); + + graphene_rect_init (&bounds, + allocation.width, 0, + widget_margin.right, allocation.height); + gtk_snapshot_append_color (snapshot, &WIDGET_MARGIN_COLOR, &bounds); + + + /* CSS Margins */ + graphene_rect_init (&bounds, + 0, 0, + allocation.width, margin.top); + gtk_snapshot_append_color (snapshot, &MARGIN_COLOR, &bounds); + + graphene_rect_init (&bounds, + 0, allocation.height - margin.bottom, + allocation.width, margin.bottom); + gtk_snapshot_append_color (snapshot, &MARGIN_COLOR, &bounds); + + graphene_rect_init (&bounds, + 0, margin.top, + margin.left, allocation.height - margin.top - margin.bottom); + gtk_snapshot_append_color (snapshot, &MARGIN_COLOR, &bounds); + + graphene_rect_init (&bounds, + allocation.width - margin.right, margin.top, + margin.right, allocation.height - margin.top - margin.bottom); + gtk_snapshot_append_color (snapshot, &MARGIN_COLOR, &bounds); + + + /* Padding */ + graphene_rect_init (&bounds, + margin.left + border.left, + margin.top + border.top, + allocation.width - margin.left - margin.right - border.left - border.right, + padding.top); + gtk_snapshot_append_color (snapshot, &PADDING_COLOR, &bounds); + + graphene_rect_init (&bounds, + margin.left + border.left, + allocation.height - margin.bottom - border.bottom - padding.bottom, + allocation.width - margin.left - margin.right - border.left - border.right, + padding.bottom); + gtk_snapshot_append_color (snapshot, &PADDING_COLOR, &bounds); + + graphene_rect_init (&bounds, + margin.left + border.left, + margin.top + border.top + padding.top, + padding.left, + allocation.height - margin.top - margin.bottom - border.top - border.bottom - padding.top - padding.bottom); + gtk_snapshot_append_color (snapshot, &PADDING_COLOR, &bounds); + + graphene_rect_init (&bounds, + allocation.width - margin.right - border.right - padding.right, + margin.top + border.top + padding.top, + padding.right, + allocation.height - margin.top - margin.bottom - border.top - border.bottom - padding.top - padding.bottom); + gtk_snapshot_append_color (snapshot, &PADDING_COLOR, &bounds); + + gtk_snapshot_pop (snapshot); + + + /* Recurse into child widgets */ + for (child = gtk_widget_get_first_child (widget); + child != NULL; + child = gtk_widget_get_next_sibling (child)) + { + const int offset_x = margin.left + border.left + padding.left; + const int offset_y = margin.top + border.top + padding.top; + + gtk_snapshot_offset (snapshot, offset_x, offset_y); + recurse_child_widgets (child, snapshot); + gtk_snapshot_offset (snapshot, - offset_x, - offset_y); + } + + gtk_snapshot_offset (snapshot, - allocation.x, - allocation.y); +} + +static void +gtk_layout_overlay_snapshot (GtkInspectorOverlay *overlay, + GtkSnapshot *snapshot, + GskRenderNode *node, + GtkWidget *widget) +{ + recurse_child_widgets (widget, snapshot); +} + +static void +gtk_layout_overlay_init (GtkLayoutOverlay *self) +{ + +} + +static void +gtk_layout_overlay_class_init (GtkLayoutOverlayClass *klass) +{ + GtkInspectorOverlayClass *overlay_class = (GtkInspectorOverlayClass *)klass; + + overlay_class->snapshot = gtk_layout_overlay_snapshot; +} + +GtkInspectorOverlay * +gtk_layout_overlay_new (void) +{ + return g_object_new (GTK_TYPE_LAYOUT_OVERLAY, NULL); +} diff --git a/gtk/inspector/layoutoverlay.h b/gtk/inspector/layoutoverlay.h new file mode 100644 index 0000000000..ef44dc10a1 --- /dev/null +++ b/gtk/inspector/layoutoverlay.h @@ -0,0 +1,19 @@ + + +#ifndef __GTK_LAYOUT_OVERLAY_H__ +#define __GTK_LAYOUT_OVERLAY_H__ + +#include "inspectoroverlay.h" + +G_BEGIN_DECLS + +#define GTK_TYPE_LAYOUT_OVERLAY (gtk_layout_overlay_get_type ()) +G_DECLARE_FINAL_TYPE (GtkLayoutOverlay, gtk_layout_overlay, GTK, LAYOUT_OVERLAY, GtkInspectorOverlay) + +GtkInspectorOverlay * gtk_layout_overlay_new (void); + +G_END_DECLS + + + +#endif diff --git a/gtk/inspector/meson.build b/gtk/inspector/meson.build index 3f241585f5..9184e14e5f 100644 --- a/gtk/inspector/meson.build +++ b/gtk/inspector/meson.build @@ -16,6 +16,7 @@ inspector_sources = files( 'init.c', 'inspect-button.c', 'inspectoroverlay.c', + 'layoutoverlay.c', 'logs.c', 'magnifier.c', 'menu.c', diff --git a/gtk/inspector/visual.c b/gtk/inspector/visual.c index 23bd753097..87ea1cf997 100644 --- a/gtk/inspector/visual.c +++ b/gtk/inspector/visual.c @@ -22,6 +22,7 @@ #include "fpsoverlay.h" #include "updatesoverlay.h" +#include "layoutoverlay.h" #include "window.h" #include "gtkadjustment.h" @@ -81,6 +82,7 @@ struct _GtkInspectorVisualPrivate GtkInspectorOverlay *fps_overlay; GtkInspectorOverlay *updates_overlay; + GtkInspectorOverlay *layout_overlay; }; G_DEFINE_TYPE_WITH_PRIVATE (GtkInspectorVisual, gtk_inspector_visual, GTK_TYPE_SCROLLED_WINDOW) @@ -313,18 +315,37 @@ baselines_activate (GtkSwitch *sw) } static void -layout_activate (GtkSwitch *sw) +layout_activate (GtkSwitch *sw, + GParamSpec *pspec, + GtkInspectorVisual *vis) { - guint flags; + GtkInspectorVisualPrivate *priv = vis->priv; + GtkInspectorWindow *iw; + gboolean draw_layout; - flags = gtk_get_debug_flags (); + draw_layout = gtk_switch_get_active (sw); + iw = GTK_INSPECTOR_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (vis))); + if (iw == NULL) + return; - if (gtk_switch_get_active (sw)) - flags |= GTK_DEBUG_LAYOUT; + if (draw_layout) + { + if (priv->updates_overlay == NULL) + { + priv->updates_overlay = gtk_layout_overlay_new (); + gtk_inspector_window_add_overlay (iw, priv->updates_overlay); + g_object_unref (priv->updates_overlay); + } + } else - flags &= ~GTK_DEBUG_LAYOUT; + { + if (priv->updates_overlay != NULL) + { + gtk_inspector_window_remove_overlay (iw, priv->updates_overlay); + priv->updates_overlay = NULL; + } + } - gtk_set_debug_flags (flags); redraw_everything (); } diff --git a/gtk/theme/Adwaita/_common.scss b/gtk/theme/Adwaita/_common.scss index f50f86211e..bc0cf94196 100644 --- a/gtk/theme/Adwaita/_common.scss +++ b/gtk/theme/Adwaita/_common.scss @@ -3323,11 +3323,15 @@ scale { progressbar { // sizing &.horizontal { + trough { min-width: 150px; } + trough, progress { min-height: 2px; } } &.vertical { + trough { min-height: 80px; } + trough, progress { min-width: 2px; } } @@ -3347,8 +3351,6 @@ progressbar { trough { @extend %scale_trough; } - &:backdrop trough { @extend %scale_trough:backdrop; } // looks like states are not passed to the trough component here - progress { @extend %scale_highlight; @@ -3375,8 +3377,6 @@ progressbar { } } - &:backdrop progress { @extend %scale_highlight:backdrop; } // states not passed here as well - &.osd { // progressbar.osd used for epiphany page loading progress min-width: 3px; min-height: 3px; @@ -4423,6 +4423,12 @@ cursor-handle { background-image: none; box-shadow: none; border-style: none; + min-width: 20px; + min-height: 24px; + padding-left: 20px; + padding-right: 20px; + padding-top: 24px; + padding-bottom: 24px; @each $s,$as in ('',''), (':hover','-hover'), @@ -4431,14 +4437,12 @@ cursor-handle { $_url: 'assets/text-select-start#{$as}#{$asset_suffix}'; -gtk-icon-source: -gtk-scaled(url('#{$_url}.png'), url('#{$_url}@2.png')); - padding-left: 10px; } &.bottom#{$s}:dir(ltr), &.top#{$s}:dir(rtl) { $_url: 'assets/text-select-end#{$as}#{$asset_suffix}'; -gtk-icon-source: -gtk-scaled(url('#{$_url}.png'), url('#{$_url}@2.png')); - padding-right: 10px; } &.insertion-cursor#{$s}:dir(ltr), &.insertion-cursor#{$s}:dir(rtl) { diff --git a/gtk/theme/Adwaita/gtk-contained-dark.css b/gtk/theme/Adwaita/gtk-contained-dark.css index b6493e9959..b490fdb614 100644 --- a/gtk/theme/Adwaita/gtk-contained-dark.css +++ b/gtk/theme/Adwaita/gtk-contained-dark.css @@ -1185,9 +1185,9 @@ scale trough, scale fill, progressbar trough { border: 1px solid #1b1f20; border scale trough:disabled, scale fill:disabled, progressbar trough:disabled { background-color: #2d3234; } -scale trough:backdrop, scale fill:backdrop, progressbar trough:backdrop, progressbar:backdrop trough { background-color: #2c3233; border-color: #202425; transition: 200ms ease-out; } +scale trough:backdrop, scale fill:backdrop, progressbar trough:backdrop { background-color: #2c3233; border-color: #202425; transition: 200ms ease-out; } -scale trough:backdrop:disabled, scale fill:backdrop:disabled, progressbar trough:backdrop:disabled, progressbar:backdrop trough:disabled { background-color: #2d3234; } +scale trough:backdrop:disabled, scale fill:backdrop:disabled, progressbar trough:backdrop:disabled { background-color: #2d3234; } row:selected scale trough:disabled, scale row:selected trough:disabled, row:selected scale fill:disabled, scale row:selected fill:disabled, row:selected progressbar trough:disabled, progressbar row:selected trough:disabled, row:selected scale trough, scale row:selected trough, row:selected scale fill, scale row:selected fill, row:selected progressbar trough, progressbar row:selected trough { border-color: #0f2b48; } @@ -1199,9 +1199,9 @@ scale highlight, progressbar progress { border: 1px solid #0f2b48; border-radius scale highlight:disabled, progressbar progress:disabled { background-color: transparent; border-color: transparent; } -scale highlight:backdrop, progressbar progress:backdrop, progressbar:backdrop progress { border-color: #0f2b48; } +scale highlight:backdrop, progressbar progress:backdrop { border-color: #0f2b48; } -scale highlight:backdrop:disabled, progressbar progress:backdrop:disabled, progressbar:backdrop progress:disabled { background-color: transparent; border-color: transparent; } +scale highlight:backdrop:disabled, progressbar progress:backdrop:disabled { background-color: transparent; border-color: transparent; } row:selected scale highlight:disabled, scale row:selected highlight:disabled, row:selected progressbar progress:disabled, progressbar row:selected progress:disabled, row:selected scale highlight, scale row:selected highlight, row:selected progressbar progress, progressbar row:selected progress { border-color: #0f2b48; } @@ -1444,8 +1444,12 @@ scale.color.fine-tune.vertical:dir(rtl) slider { margin-right: -15px; margin-lef /***************** Progress bars * */ progressbar { font-size: smaller; color: rgba(238, 238, 236, 0.4); } +progressbar.horizontal trough { min-width: 150px; } + progressbar.horizontal trough, progressbar.horizontal progress { min-height: 2px; } +progressbar.vertical trough { min-height: 80px; } + progressbar.vertical trough, progressbar.vertical progress { min-width: 2px; } progressbar.horizontal progress { margin: 0 -1px; } @@ -1908,23 +1912,23 @@ row:selected label:backdrop:disabled, label:backdrop:disabled:selected, .selecti .monospace { font-family: monospace; } /********************** Touch Copy & Paste * */ -cursor-handle { background-color: transparent; background-image: none; box-shadow: none; border-style: none; } +cursor-handle { background-color: transparent; background-image: none; box-shadow: none; border-style: none; min-width: 20px; min-height: 24px; padding-left: 20px; padding-right: 20px; padding-top: 24px; padding-bottom: 24px; } -cursor-handle.top:dir(ltr), cursor-handle.bottom:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-start-dark.png"), url("assets/text-select-start-dark@2.png")); padding-left: 10px; } +cursor-handle.top:dir(ltr), cursor-handle.bottom:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-start-dark.png"), url("assets/text-select-start-dark@2.png")); } -cursor-handle.bottom:dir(ltr), cursor-handle.top:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-end-dark.png"), url("assets/text-select-end-dark@2.png")); padding-right: 10px; } +cursor-handle.bottom:dir(ltr), cursor-handle.top:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-end-dark.png"), url("assets/text-select-end-dark@2.png")); } cursor-handle.insertion-cursor:dir(ltr), cursor-handle.insertion-cursor:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-dark.png"), url("assets/slider-horz-scale-has-marks-above-dark@2.png")); } -cursor-handle.top:hover:dir(ltr), cursor-handle.bottom:hover:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-start-hover-dark.png"), url("assets/text-select-start-hover-dark@2.png")); padding-left: 10px; } +cursor-handle.top:hover:dir(ltr), cursor-handle.bottom:hover:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-start-hover-dark.png"), url("assets/text-select-start-hover-dark@2.png")); } -cursor-handle.bottom:hover:dir(ltr), cursor-handle.top:hover:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-end-hover-dark.png"), url("assets/text-select-end-hover-dark@2.png")); padding-right: 10px; } +cursor-handle.bottom:hover:dir(ltr), cursor-handle.top:hover:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-end-hover-dark.png"), url("assets/text-select-end-hover-dark@2.png")); } cursor-handle.insertion-cursor:hover:dir(ltr), cursor-handle.insertion-cursor:hover:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-hover-dark.png"), url("assets/slider-horz-scale-has-marks-above-hover-dark@2.png")); } -cursor-handle.top:active:dir(ltr), cursor-handle.bottom:active:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-start-active-dark.png"), url("assets/text-select-start-active-dark@2.png")); padding-left: 10px; } +cursor-handle.top:active:dir(ltr), cursor-handle.bottom:active:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-start-active-dark.png"), url("assets/text-select-start-active-dark@2.png")); } -cursor-handle.bottom:active:dir(ltr), cursor-handle.top:active:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-end-active-dark.png"), url("assets/text-select-end-active-dark@2.png")); padding-right: 10px; } +cursor-handle.bottom:active:dir(ltr), cursor-handle.top:active:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-end-active-dark.png"), url("assets/text-select-end-active-dark@2.png")); } cursor-handle.insertion-cursor:active:dir(ltr), cursor-handle.insertion-cursor:active:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-active-dark.png"), url("assets/slider-horz-scale-has-marks-above-active-dark@2.png")); } diff --git a/gtk/theme/Adwaita/gtk-contained.css b/gtk/theme/Adwaita/gtk-contained.css index e48eddb017..66e888bd56 100644 --- a/gtk/theme/Adwaita/gtk-contained.css +++ b/gtk/theme/Adwaita/gtk-contained.css @@ -1205,9 +1205,9 @@ scale trough, scale fill, progressbar trough { border: 1px solid #b6b6b3; border scale trough:disabled, scale fill:disabled, progressbar trough:disabled { background-color: #f1f1f1; } -scale trough:backdrop, scale fill:backdrop, progressbar trough:backdrop, progressbar:backdrop trough { background-color: #dadad8; border-color: #c0c0bd; transition: 200ms ease-out; } +scale trough:backdrop, scale fill:backdrop, progressbar trough:backdrop { background-color: #dadad8; border-color: #c0c0bd; transition: 200ms ease-out; } -scale trough:backdrop:disabled, scale fill:backdrop:disabled, progressbar trough:backdrop:disabled, progressbar:backdrop trough:disabled { background-color: #f1f1f1; } +scale trough:backdrop:disabled, scale fill:backdrop:disabled, progressbar trough:backdrop:disabled { background-color: #f1f1f1; } row:selected scale trough:disabled, scale row:selected trough:disabled, row:selected scale fill:disabled, scale row:selected fill:disabled, row:selected progressbar trough:disabled, progressbar row:selected trough:disabled, row:selected scale trough, scale row:selected trough, row:selected scale fill, scale row:selected fill, row:selected progressbar trough, progressbar row:selected trough { border-color: #184472; } @@ -1219,9 +1219,9 @@ scale highlight, progressbar progress { border: 1px solid #184472; border-radius scale highlight:disabled, progressbar progress:disabled { background-color: transparent; border-color: transparent; } -scale highlight:backdrop, progressbar progress:backdrop, progressbar:backdrop progress { border-color: #4a90d9; } +scale highlight:backdrop, progressbar progress:backdrop { border-color: #4a90d9; } -scale highlight:backdrop:disabled, progressbar progress:backdrop:disabled, progressbar:backdrop progress:disabled { background-color: transparent; border-color: transparent; } +scale highlight:backdrop:disabled, progressbar progress:backdrop:disabled { background-color: transparent; border-color: transparent; } row:selected scale highlight:disabled, scale row:selected highlight:disabled, row:selected progressbar progress:disabled, progressbar row:selected progress:disabled, row:selected scale highlight, scale row:selected highlight, row:selected progressbar progress, progressbar row:selected progress { border-color: #184472; } @@ -1464,8 +1464,12 @@ scale.color.fine-tune.vertical:dir(rtl) slider { margin-right: -15px; margin-lef /***************** Progress bars * */ progressbar { font-size: smaller; color: rgba(46, 52, 54, 0.4); } +progressbar.horizontal trough { min-width: 150px; } + progressbar.horizontal trough, progressbar.horizontal progress { min-height: 2px; } +progressbar.vertical trough { min-height: 80px; } + progressbar.vertical trough, progressbar.vertical progress { min-width: 2px; } progressbar.horizontal progress { margin: 0 -1px; } @@ -1928,23 +1932,23 @@ row:selected label:backdrop:disabled, label:backdrop:disabled:selected, .selecti .monospace { font-family: monospace; } /********************** Touch Copy & Paste * */ -cursor-handle { background-color: transparent; background-image: none; box-shadow: none; border-style: none; } +cursor-handle { background-color: transparent; background-image: none; box-shadow: none; border-style: none; min-width: 20px; min-height: 24px; padding-left: 20px; padding-right: 20px; padding-top: 24px; padding-bottom: 24px; } -cursor-handle.top:dir(ltr), cursor-handle.bottom:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-start.png"), url("assets/text-select-start@2.png")); padding-left: 10px; } +cursor-handle.top:dir(ltr), cursor-handle.bottom:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-start.png"), url("assets/text-select-start@2.png")); } -cursor-handle.bottom:dir(ltr), cursor-handle.top:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-end.png"), url("assets/text-select-end@2.png")); padding-right: 10px; } +cursor-handle.bottom:dir(ltr), cursor-handle.top:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-end.png"), url("assets/text-select-end@2.png")); } cursor-handle.insertion-cursor:dir(ltr), cursor-handle.insertion-cursor:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above.png"), url("assets/slider-horz-scale-has-marks-above@2.png")); } -cursor-handle.top:hover:dir(ltr), cursor-handle.bottom:hover:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-start-hover.png"), url("assets/text-select-start-hover@2.png")); padding-left: 10px; } +cursor-handle.top:hover:dir(ltr), cursor-handle.bottom:hover:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-start-hover.png"), url("assets/text-select-start-hover@2.png")); } -cursor-handle.bottom:hover:dir(ltr), cursor-handle.top:hover:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-end-hover.png"), url("assets/text-select-end-hover@2.png")); padding-right: 10px; } +cursor-handle.bottom:hover:dir(ltr), cursor-handle.top:hover:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-end-hover.png"), url("assets/text-select-end-hover@2.png")); } cursor-handle.insertion-cursor:hover:dir(ltr), cursor-handle.insertion-cursor:hover:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-hover.png"), url("assets/slider-horz-scale-has-marks-above-hover@2.png")); } -cursor-handle.top:active:dir(ltr), cursor-handle.bottom:active:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-start-active.png"), url("assets/text-select-start-active@2.png")); padding-left: 10px; } +cursor-handle.top:active:dir(ltr), cursor-handle.bottom:active:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-start-active.png"), url("assets/text-select-start-active@2.png")); } -cursor-handle.bottom:active:dir(ltr), cursor-handle.top:active:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-end-active.png"), url("assets/text-select-end-active@2.png")); padding-right: 10px; } +cursor-handle.bottom:active:dir(ltr), cursor-handle.top:active:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/text-select-end-active.png"), url("assets/text-select-end-active@2.png")); } cursor-handle.insertion-cursor:active:dir(ltr), cursor-handle.insertion-cursor:active:dir(rtl) { -gtk-icon-source: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-active.png"), url("assets/slider-horz-scale-has-marks-above-active@2.png")); } diff --git a/gtk/theme/HighContrast/_common.scss b/gtk/theme/HighContrast/_common.scss index 97131da022..a20e685eaf 100644 --- a/gtk/theme/HighContrast/_common.scss +++ b/gtk/theme/HighContrast/_common.scss @@ -2485,49 +2485,58 @@ progressbar { border-color: $borders_color; background-color: mix($borders_color,$bg_color, 35%); box-shadow: inset 1px 1px transparentize(black, 0.9); + &:backdrop { border-color: $backdrop_borders_color; background-color: mix($backdrop_borders_color,$backdrop_bg_color, 35%); box-shadow: 0 1px transparentize(white,1); } } + &.osd trough { background-color: transparent; box-shadow: none; border-width: 0; //FIXME: there is a margin on top } -} -// moving bit -progressbar { + // moving bit &.horizontal { + trough { min-width: 150px; } trough, progress { min-height: 2px; } } + &.vertical { + trough { min-height: 80px; } trough, progress { min-width: 2px; } } + & progress { border-width: 1px; border-style: solid; border-radius: 3px; border-color: $selected_borders_color; background-color: $selected_bg_color; + // I really prefer these flat w/o this shadow - Lapo box-shadow: inset 0 1px 0 transparentize($borders_edge,0.8); + &.vertical { box-shadow: inset 1px 0 0 transparentize($borders_edge,0.8); } + &:backdrop { border-color: $selected_bg_color; background-color: $selected_bg_color; box-shadow: none; } + &.osd { border-width: 0; border-radius: 0; } } + trough.empty progress { all: unset; } // make the progress indicator disappear when the fraction is 0 } diff --git a/gtk/theme/HighContrast/gtk-contained-inverse.css b/gtk/theme/HighContrast/gtk-contained-inverse.css index bf92f6167f..22c62e44ee 100644 --- a/gtk/theme/HighContrast/gtk-contained-inverse.css +++ b/gtk/theme/HighContrast/gtk-contained-inverse.css @@ -1105,8 +1105,12 @@ progressbar trough:backdrop { border-color: #737373; background-color: #282828; progressbar.osd trough { background-color: transparent; box-shadow: none; border-width: 0; } +progressbar.horizontal trough { min-width: 150px; } + progressbar.horizontal trough, progressbar.horizontal progress { min-height: 2px; } +progressbar.vertical trough { min-height: 80px; } + progressbar.vertical trough, progressbar.vertical progress { min-width: 2px; } progressbar progress { border-width: 1px; border-style: solid; border-radius: 3px; border-color: #aaa; background-color: #ddd; box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2); } diff --git a/gtk/theme/HighContrast/gtk-contained.css b/gtk/theme/HighContrast/gtk-contained.css index 78dc89900b..343d9c2179 100644 --- a/gtk/theme/HighContrast/gtk-contained.css +++ b/gtk/theme/HighContrast/gtk-contained.css @@ -1111,8 +1111,12 @@ progressbar trough:backdrop { border-color: #8d8d8d; background-color: #d7d7d7; progressbar.osd trough { background-color: transparent; box-shadow: none; border-width: 0; } +progressbar.horizontal trough { min-width: 150px; } + progressbar.horizontal trough, progressbar.horizontal progress { min-height: 2px; } +progressbar.vertical trough { min-height: 80px; } + progressbar.vertical trough, progressbar.vertical progress { min-width: 2px; } progressbar progress { border-width: 1px; border-style: solid; border-radius: 3px; border-color: #000; background-color: #000; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2); } diff --git a/gtk/ui/gtkfilechooserwidget.ui b/gtk/ui/gtkfilechooserwidget.ui index a82acda0d9..fbb53bd76e 100644 --- a/gtk/ui/gtkfilechooserwidget.ui +++ b/gtk/ui/gtkfilechooserwidget.ui @@ -384,6 +384,11 @@ </child> </object> </child> + <child> + <object class="GtkEventControllerKey"> + <signal name="key-pressed" handler="widget_key_press_cb" swapped="no"/> + </object> + </child> </template> <object class="GtkSizeGroup" id="browse_path_bar_size_group"> <property name="mode">vertical</property> diff --git a/gtk/ui/gtkfontchooserdialog.ui b/gtk/ui/gtkfontchooserdialog.ui index c3b2882be3..e6fb4ec3a6 100644 --- a/gtk/ui/gtkfontchooserdialog.ui +++ b/gtk/ui/gtkfontchooserdialog.ui @@ -33,6 +33,12 @@ <property name="can-default">1</property> </object> </child> + <child> + <object class="GtkEventControllerKey"> + <signal name="key-pressed" handler="dialog_forward_key" swapped="no"/> + <signal name="key-released" handler="dialog_forward_key" swapped="no"/> + </object> + </child> <action-widgets> <action-widget response="cancel">cancel_button</action-widget> <action-widget response="ok" default="true">select_button</action-widget> diff --git a/meson.build b/meson.build index c87fc48dec..ede2e155a7 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('gtk+', 'c', - version: '3.93.0', + version: '3.94.0', default_options: [ 'buildtype=debugoptimized', 'warning_level=1', diff --git a/modules/media/gtkffmediafile.c b/modules/media/gtkffmediafile.c index 7f6244224e..04737f7474 100644 --- a/modules/media/gtkffmediafile.c +++ b/modules/media/gtkffmediafile.c @@ -656,6 +656,9 @@ gtk_ff_media_file_play (GtkMediaStream *stream) { GtkFfMediaFile *video = GTK_FF_MEDIA_FILE (stream); + if (video->format_ctx == NULL) + return FALSE; + if (!gtk_media_stream_is_prepared (stream)) return TRUE; diff --git a/modules/media/gtkgstmediafile.c b/modules/media/gtkgstmediafile.c index 93162eae5b..afbf637bd3 100644 --- a/modules/media/gtkgstmediafile.c +++ b/modules/media/gtkgstmediafile.c @@ -245,6 +245,9 @@ gtk_gst_media_file_play (GtkMediaStream *stream) { GtkGstMediaFile *self = GTK_GST_MEDIA_FILE (stream); + if (self->player == NULL) + return FALSE; + gst_player_play (self->player); return TRUE; diff --git a/modules/media/gtkgstsink.c b/modules/media/gtkgstsink.c index da11cbd854..4959bb86f8 100644 --- a/modules/media/gtkgstsink.c +++ b/modules/media/gtkgstsink.c @@ -131,6 +131,7 @@ gtk_gst_sink_texture_from_buffer (GtkGstSink *self, gtk_gst_memory_format_from_video (GST_VIDEO_FRAME_FORMAT (&frame)), bytes, frame.info.stride[0]); + g_bytes_unref (bytes); gst_video_frame_unmap (&frame); return texture; diff --git a/modules/printbackends/gtkprintercups.c b/modules/printbackends/gtkprintercups.c index 525382aa8a..b97da61805 100644 --- a/modules/printbackends/gtkprintercups.c +++ b/modules/printbackends/gtkprintercups.c @@ -576,8 +576,6 @@ colord_printer_details_aquired_cb (GtkPrinterCups *printer, * Creates a new #GtkPrinterCups. * * Returns: a new #GtkPrinterCups - * - * Since: 2.10 **/ GtkPrinterCups * gtk_printer_cups_new (const char *name, diff --git a/po-properties/POTFILES.in b/po-properties/POTFILES.in index 3c2881253f..93d6d401e0 100644 --- a/po-properties/POTFILES.in +++ b/po-properties/POTFILES.in @@ -10,7 +10,7 @@ gdk/gdkcursor.c gdk/gdkdevice.c gdk/gdkdisplay.c gdk/gdkdisplaymanager.c -gdk/gdkdnd.c +gdk/gdkdrag.c gdk/gdkdrawcontext.c gdk/gdkdrop.c gdk/gdkevents.c diff --git a/po-properties/hu.po b/po-properties/hu.po index 42b320ac26..202e28e943 100644 --- a/po-properties/hu.po +++ b/po-properties/hu.po @@ -2,7 +2,7 @@ # Copyright (C) 2004-2017 Free Software Foundation, Inc. # This file is distributed under the same license as the gtk+-properties package. # -# Gabor Kelemen <kelemeng at gnome dot hu>, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017. +# Gabor Kelemen <kelemeng at gnome dot hu>, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018. # Laszlo Dvornik <dvornik at gnome dot hu>, 2004, 2005. # Szabolcs Varga <shirokuma at shirokuma dot hu>, 2005. # Balázs Úr <urbalazs at gmail dot com>, 2013, 2014, 2015, 2016, 2017. @@ -10,204 +10,243 @@ msgid "" msgstr "" "Project-Id-Version: gtk+-properties master\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-10 16:18+0000\n" -"PO-Revision-Date: 2017-09-10 20:28+0200\n" -"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n" +"POT-Creation-Date: 2018-07-08 08:08+0000\n" +"PO-Revision-Date: 2018-07-08 16:03+0100\n" +"Last-Translator: Gabor Kelemen <kelemeng at ubuntu dot com>\n" "Language-Team: Hungarian <openscope at googlegroups dot com>\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.2\n" +"X-Generator: Lokalize 2.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: gdk/gdkapplaunchcontext.c:127 gdk/gdkcursor.c:139 gdk/gdkdevicemanager.c:185 -#: gdk/gdkdrawcontext.c:134 gdk/gdkseat.c:202 gdk/gdkseat.c:203 -#: gdk/gdkwindow.c:288 gdk/gdkwindow.c:289 +#: gdk/gdkapplaunchcontext.c:133 gdk/gdkdrawcontext.c:154 gdk/gdkseat.c:199 +#: gdk/gdkseat.c:200 gdk/gdksurface.c:262 gdk/gdksurface.c:263 +#: gdk/win32/gdkcursor-win32.c:234 gtk/gtkinvisible.c:95 +#: gtk/gtkmountoperation.c:181 gtk/gtkstylecontext.c:207 gtk/gtkwindow.c:965 msgid "Display" msgstr "Kijelző" -#: gdk/gdkcursor.c:131 -msgid "Cursor type" -msgstr "Kurzortípus" +#: gdk/gdkcursor.c:185 gtk/gtktexttag.c:588 +msgid "Fallback" +msgstr "Tartalék" + +#: gdk/gdkcursor.c:186 +msgid "Cursor image to fall back to if this cursor cannot be displayed" +msgstr "A tartalék kurzorkép, ha ez a kurzor nem jeleníthető meg" + +#: gdk/gdkcursor.c:193 +msgid "Hotspot X" +msgstr "Hotspot X" + +#: gdk/gdkcursor.c:194 +msgid "Horizontal offset of the cursor hotspot" +msgstr "A kurzor hotspot vízszintes eltolása" + +#: gdk/gdkcursor.c:201 +msgid "Hotspot Y" +msgstr "Hotspot Y" + +#: gdk/gdkcursor.c:202 +msgid "Vertical offset of the cursor hotspot" +msgstr "A kurzor forró pontjának függőleges eltolása" + +#: gdk/gdkcursor.c:209 gtk/gtkcssnode.c:639 gtk/gtkprinter.c:121 +#: gtk/gtkstack.c:378 gtk/gtktextmark.c:135 +msgid "Name" +msgstr "Név" -#: gdk/gdkcursor.c:132 -msgid "Standard cursor type" -msgstr "Szabványos kurzortípus" +#: gdk/gdkcursor.c:210 +msgid "Name of this cursor" +msgstr "A kurzor neve" -#: gdk/gdkcursor.c:140 -msgid "Display of this cursor" -msgstr "A kurzor kijelzője" +#: gdk/gdkcursor.c:217 gtk/gtkcellrendererpixbuf.c:172 +msgid "Texture" +msgstr "Textúra" -#: gdk/gdkdevice.c:123 +#: gdk/gdkcursor.c:218 +msgid "The texture displayed by this cursor" +msgstr "A kurzor által megjelenített textúra" + +#: gdk/gdkdevice.c:127 msgid "Device Display" msgstr "Eszköz kijelzője" -#: gdk/gdkdevice.c:124 +#: gdk/gdkdevice.c:128 msgid "Display which the device belongs to" msgstr "A kijelző, amelyhez az eszköz tartozik" -#: gdk/gdkdevice.c:138 -msgid "Device manager" -msgstr "Eszközkezelő" - -#: gdk/gdkdevice.c:139 -msgid "Device manager which the device belongs to" -msgstr "Az eszközkezelő, amelyhez az eszköz tartozik" - -#: gdk/gdkdevice.c:152 gdk/gdkdevice.c:153 +#: gdk/gdkdevice.c:139 gdk/gdkdevice.c:140 msgid "Device name" msgstr "Eszköz neve" -#: gdk/gdkdevice.c:166 +#: gdk/gdkdevice.c:151 msgid "Device type" msgstr "Eszköztípus" -#: gdk/gdkdevice.c:167 +#: gdk/gdkdevice.c:152 msgid "Device role in the device manager" msgstr "Eszköz szerepe az eszközkezelőben" -#: gdk/gdkdevice.c:183 +#: gdk/gdkdevice.c:166 msgid "Associated device" msgstr "Társított eszköz" -#: gdk/gdkdevice.c:184 +#: gdk/gdkdevice.c:167 msgid "Associated pointer or keyboard with this device" msgstr "Az eszközhöz társított mutató vagy billentyűzet" -#: gdk/gdkdevice.c:197 +#: gdk/gdkdevice.c:178 msgid "Input source" msgstr "Beviteli forrás" -#: gdk/gdkdevice.c:198 +#: gdk/gdkdevice.c:179 msgid "Source type for the device" msgstr "Az eszköz forrástípusa" -#: gdk/gdkdevice.c:213 gdk/gdkdevice.c:214 +#: gdk/gdkdevice.c:192 gdk/gdkdevice.c:193 msgid "Input mode for the device" msgstr "Az eszköz beviteli módja" -#: gdk/gdkdevice.c:229 +#: gdk/gdkdevice.c:206 msgid "Whether the device has a cursor" msgstr "Az eszköz rendelkezik-e kurzorral" -#: gdk/gdkdevice.c:230 +#: gdk/gdkdevice.c:207 msgid "Whether there is a visible cursor following device motion" msgstr "Van-e az eszköz mozgását követő látható kurzor?" -#: gdk/gdkdevice.c:244 gdk/gdkdevice.c:245 +#: gdk/gdkdevice.c:219 gdk/gdkdevice.c:220 msgid "Number of axes in the device" msgstr "Az eszköz tengelyeinek száma" -#: gdk/gdkdevice.c:259 gdk/gdkdevice.c:260 +#: gdk/gdkdevice.c:232 gdk/gdkdevice.c:233 msgid "Vendor ID" msgstr "Gyártóazonosító" -#: gdk/gdkdevice.c:274 gdk/gdkdevice.c:275 +#: gdk/gdkdevice.c:245 gdk/gdkdevice.c:246 msgid "Product ID" msgstr "Termékazonosító" -#: gdk/gdkdevice.c:289 gdk/gdkdevice.c:290 +#: gdk/gdkdevice.c:258 gdk/gdkdevice.c:259 msgid "Seat" msgstr "Munkaállomás" -#: gdk/gdkdevice.c:306 gdk/gdkdevice.c:307 +#: gdk/gdkdevice.c:273 gdk/gdkdevice.c:274 msgid "Number of concurrent touches" msgstr "Egyidejű érintések száma" -#: gdk/gdkdevice.c:321 gdk/gdkdevice.c:322 +#: gdk/gdkdevice.c:286 gdk/gdkdevice.c:287 msgid "Axes" msgstr "Tengelyek" -#: gdk/gdkdevice.c:328 +#: gdk/gdkdevice.c:293 msgid "Tool" msgstr "Eszköz" -#: gdk/gdkdevice.c:329 +#: gdk/gdkdevice.c:294 msgid "The tool that is currently used with this device" msgstr "Az eszköz, amely jelenleg ezzel az eszközzel van használatban" -#: gdk/gdkdevicemanager.c:186 -msgid "Display for the device manager" -msgstr "Az eszközkezelő kijelzője" - -#: gdk/gdkdisplay.c:215 gdk/gdkdisplay.c:216 +#: gdk/gdkdisplay.c:192 gdk/gdkdisplay.c:193 msgid "Composited" msgstr "Kompozitált" -#: gdk/gdkdisplay.c:230 gdk/gdkdisplay.c:231 +#: gdk/gdkdisplay.c:205 gdk/gdkdisplay.c:206 msgid "RGBA" msgstr "RGBA" -#: gdk/gdkdisplaymanager.c:168 +#: gdk/gdkdisplaymanager.c:167 msgid "Default Display" msgstr "Alapértelmezett képernyő" -#: gdk/gdkdisplaymanager.c:169 +#: gdk/gdkdisplaymanager.c:168 msgid "The default display for GDK" msgstr "A GDK alapértelmezett képernyője" -#: gdk/gdkdrawcontext.c:135 +#: gdk/gdkdrawcontext.c:155 msgid "The GDK display used to create the context" msgstr "A környezet létrehozásához használt GDK kijelző" -#: gdk/gdkdrawcontext.c:149 gtk/gtkwidget.c:1264 -msgid "Window" -msgstr "Ablak" +#: gdk/gdkdrawcontext.c:167 gtk/gtkwidget.c:1120 +msgid "Surface" +msgstr "Felület" -#: gdk/gdkdrawcontext.c:150 -msgid "The GDK window bound to the context" -msgstr "A környezethez kötött GDK ablak" +#: gdk/gdkdrawcontext.c:168 +msgid "The GDK surface bound to the context" +msgstr "A környezethez kötött GDK felület" -#: gdk/gdkglcontext.c:343 +#: gdk/gdkevents.c:155 gdk/gdkevents.c:156 +msgid "Event type" +msgstr "Esemény típusa" + +#: gdk/gdkglcontext.c:375 msgid "Shared context" msgstr "Osztott környezet" -#: gdk/gdkglcontext.c:344 +#: gdk/gdkglcontext.c:376 msgid "The GL context this context shares data with" msgstr "A GL környezet, amellyel ez a környezet adatot oszt meg" -#: gdk/gdkscreen.c:84 -msgid "Font resolution" -msgstr "Betűfelbontás" - -#: gdk/gdkscreen.c:85 -msgid "The resolution for fonts on the screen" -msgstr "A képernyő betűinek felbontása" - -#: gdk/gdkwindow.c:273 gdk/gdkwindow.c:274 +#: gdk/gdksurface.c:249 gdk/gdksurface.c:250 gtk/gtkwidget.c:1049 msgid "Cursor" msgstr "Kurzor" -#: gdk/x11/gdkdevicemanager-xi2.c:115 +#: gdk/gdksurface.c:269 gdk/gdksurface.c:270 gtk/gtkcssnode.c:644 +#: gtk/gtkswitch.c:534 +msgid "State" +msgstr "Állapot" + +#: gdk/win32/gdkcursor-win32.c:235 +msgid "The display that will use this cursor" +msgstr "A kijelző, amely a kurzort fogja használni" + +#: gdk/win32/gdkcursor-win32.c:241 +msgid "Handle" +msgstr "Kezelő" + +#: gdk/win32/gdkcursor-win32.c:242 +msgid "The HCURSOR handle for this cursor" +msgstr "A kurzorhoz kötött HCURSOR kezelő" + +#: gdk/win32/gdkcursor-win32.c:247 +msgid "Destroyable" +msgstr "Elpusztítható" + +#: gdk/win32/gdkcursor-win32.c:248 +msgid "Whether calling DestroyCursor() is allowed on this cursor" +msgstr "Engedélyezett-e a DestroyCursor() meghívása ezen a kurzoron" + +#: gdk/x11/gdkdevicemanager-xi2.c:111 msgid "Opcode" msgstr "Műveletkód" -#: gdk/x11/gdkdevicemanager-xi2.c:116 +#: gdk/x11/gdkdevicemanager-xi2.c:112 msgid "Opcode for XInput2 requests" msgstr "Műveletkód XInput2 kérésekhez" -#: gdk/x11/gdkdevicemanager-xi2.c:122 +#: gdk/x11/gdkdevicemanager-xi2.c:119 msgid "Major" msgstr "Elsődleges" -#: gdk/x11/gdkdevicemanager-xi2.c:123 +#: gdk/x11/gdkdevicemanager-xi2.c:120 msgid "Major version number" msgstr "Elsődleges verziószám" -#: gdk/x11/gdkdevicemanager-xi2.c:129 +#: gdk/x11/gdkdevicemanager-xi2.c:127 msgid "Minor" msgstr "Másodlagos" -#: gdk/x11/gdkdevicemanager-xi2.c:130 +#: gdk/x11/gdkdevicemanager-xi2.c:128 msgid "Minor version number" msgstr "Másodlagos verziószám" -#: gdk/x11/gdkdevice-xi2.c:142 +#: gdk/x11/gdkdevice-xi2.c:135 msgid "Device ID" msgstr "Eszközazonosító" -#: gdk/x11/gdkdevice-xi2.c:143 +#: gdk/x11/gdkdevice-xi2.c:136 msgid "Device identifier" msgstr "Eszközazonosító" @@ -219,11 +258,11 @@ msgstr "Cellamegjelenítő" msgid "The cell renderer represented by this accessible" msgstr "Az akadálymentes elem által képviselt cellamegjelenítő" -#: gtk/gtkaboutdialog.c:356 +#: gtk/gtkaboutdialog.c:355 msgid "Program name" msgstr "Programnév" -#: gtk/gtkaboutdialog.c:357 +#: gtk/gtkaboutdialog.c:356 msgid "" "The name of the program. If this is not set, it defaults to " "g_get_application_name()" @@ -231,108 +270,108 @@ msgstr "" "A program neve. Ha nincs beállítva, akkor alapértelmezés szerint " "g_get_application_name()" -#: gtk/gtkaboutdialog.c:370 +#: gtk/gtkaboutdialog.c:367 msgid "Program version" msgstr "Programverzió" -#: gtk/gtkaboutdialog.c:371 +#: gtk/gtkaboutdialog.c:368 msgid "The version of the program" msgstr "A program verziója" -#: gtk/gtkaboutdialog.c:384 +#: gtk/gtkaboutdialog.c:379 msgid "Copyright string" msgstr "Copyright szöveg" -#: gtk/gtkaboutdialog.c:385 +#: gtk/gtkaboutdialog.c:380 msgid "Copyright information for the program" msgstr "Copyright-információ a programról" -#: gtk/gtkaboutdialog.c:400 +#: gtk/gtkaboutdialog.c:393 msgid "Comments string" msgstr "Megjegyzések" -#: gtk/gtkaboutdialog.c:401 +#: gtk/gtkaboutdialog.c:394 msgid "Comments about the program" msgstr "Megjegyzések a programról" -#: gtk/gtkaboutdialog.c:425 +#: gtk/gtkaboutdialog.c:416 msgid "License" msgstr "Licenc" -#: gtk/gtkaboutdialog.c:426 +#: gtk/gtkaboutdialog.c:417 msgid "The license of the program" msgstr "A program licence" -#: gtk/gtkaboutdialog.c:446 +#: gtk/gtkaboutdialog.c:435 msgid "System Information" msgstr "Rendszerinformációk" -#: gtk/gtkaboutdialog.c:447 +#: gtk/gtkaboutdialog.c:436 msgid "Information about the system on which the program is running" msgstr "Információk a rendszerről, amelyen a program fut" -#: gtk/gtkaboutdialog.c:474 +#: gtk/gtkaboutdialog.c:461 msgid "License Type" msgstr "Licenctípus" -#: gtk/gtkaboutdialog.c:475 +#: gtk/gtkaboutdialog.c:462 msgid "The license type of the program" msgstr "A program licencének típusa" -#: gtk/gtkaboutdialog.c:490 +#: gtk/gtkaboutdialog.c:475 msgid "Website URL" msgstr "Webhely URL" -#: gtk/gtkaboutdialog.c:491 +#: gtk/gtkaboutdialog.c:476 msgid "The URL for the link to the website of the program" msgstr "A program webhelyére mutató hivatkozás URL-je" -#: gtk/gtkaboutdialog.c:504 +#: gtk/gtkaboutdialog.c:487 msgid "Website label" msgstr "Webhely címke" -#: gtk/gtkaboutdialog.c:505 +#: gtk/gtkaboutdialog.c:488 msgid "The label for the link to the website of the program" msgstr "A program webhelyére mutató hivatkozás címkéje" -#: gtk/gtkaboutdialog.c:520 +#: gtk/gtkaboutdialog.c:501 msgid "Authors" msgstr "Szerzők" -#: gtk/gtkaboutdialog.c:521 +#: gtk/gtkaboutdialog.c:502 msgid "List of authors of the program" msgstr "A program szerzőinek listája" -#: gtk/gtkaboutdialog.c:536 +#: gtk/gtkaboutdialog.c:515 msgid "Documenters" msgstr "Dokumentáció írói" -#: gtk/gtkaboutdialog.c:537 +#: gtk/gtkaboutdialog.c:516 msgid "List of people documenting the program" msgstr "A program dokumentációját író emberek listája" -#: gtk/gtkaboutdialog.c:552 +#: gtk/gtkaboutdialog.c:529 msgid "Artists" msgstr "Művészek" -#: gtk/gtkaboutdialog.c:553 +#: gtk/gtkaboutdialog.c:530 msgid "List of people who have contributed artwork to the program" msgstr "Azon emberek listája, akik alkotásaikat adták a programhoz" -#: gtk/gtkaboutdialog.c:568 +#: gtk/gtkaboutdialog.c:543 msgid "Translator credits" msgstr "Fordítók" -#: gtk/gtkaboutdialog.c:569 +#: gtk/gtkaboutdialog.c:544 msgid "" "Credits to the translators. This string should be marked as translatable" msgstr "A fordítók listája. Ezt a karakterláncot fordítandónak kell jelölni" -#: gtk/gtkaboutdialog.c:583 +#: gtk/gtkaboutdialog.c:556 msgid "Logo" msgstr "Logó" -#: gtk/gtkaboutdialog.c:584 +#: gtk/gtkaboutdialog.c:557 msgid "" "A logo for the about box. If this is not set, it defaults to " "gtk_window_get_default_icon_list()" @@ -340,58 +379,58 @@ msgstr "" "Logó a névjegy mezőhöz. Ha nincs beállítva, alapértelmezett értéke a " "gtk_window_get_default_icon_list()" -#: gtk/gtkaboutdialog.c:598 +#: gtk/gtkaboutdialog.c:569 msgid "Logo Icon Name" msgstr "Logóikon neve" -#: gtk/gtkaboutdialog.c:599 +#: gtk/gtkaboutdialog.c:570 msgid "A named icon to use as the logo for the about box." msgstr "Egy megnevezett ikon a névjegy mező logójának." -#: gtk/gtkaboutdialog.c:612 +#: gtk/gtkaboutdialog.c:581 msgid "Wrap license" msgstr "Licenc tördelése" -#: gtk/gtkaboutdialog.c:613 +#: gtk/gtkaboutdialog.c:582 msgid "Whether to wrap the license text." msgstr "Tördelje-e a licenc szövegét?" -#: gtk/gtkaccellabel.c:227 +#: gtk/gtkaccellabel.c:223 msgid "Accelerator Closure" msgstr "Gyorsbillentyű keret" -#: gtk/gtkaccellabel.c:228 +#: gtk/gtkaccellabel.c:224 msgid "The closure to be monitored for accelerator changes" msgstr "" "Az a keret, amelyre vonatkozóan figyelni kell a gyorsbillentyű változását" -#: gtk/gtkaccellabel.c:234 +#: gtk/gtkaccellabel.c:230 msgid "Accelerator Widget" msgstr "Gyorsbillentyű felületelem" -#: gtk/gtkaccellabel.c:235 +#: gtk/gtkaccellabel.c:231 msgid "The widget to be monitored for accelerator changes" msgstr "" "Az a felületelem, amelyre vonatkozóan figyelni kell a gyorsbillentyű " "változását" -#: gtk/gtkaccellabel.c:241 gtk/gtkbutton.c:225 gtk/gtkexpander.c:291 -#: gtk/gtkframe.c:170 gtk/gtklabel.c:755 gtk/gtkmenuitem.c:641 -#: gtk/gtktoolbutton.c:215 gtk/gtktoolitemgroup.c:1555 +#: gtk/gtkaccellabel.c:237 gtk/gtkbutton.c:226 gtk/gtkexpander.c:277 +#: gtk/gtkframe.c:167 gtk/gtklabel.c:756 gtk/gtkmenuitem.c:633 +#: gtk/gtktoolbutton.c:212 msgid "Label" msgstr "Címke" -#: gtk/gtkaccellabel.c:242 +#: gtk/gtkaccellabel.c:238 msgid "The text displayed next to the accelerator" msgstr "A gyorsbillentyű mellett megjelenő szöveg" -#: gtk/gtkaccellabel.c:248 gtk/gtkbutton.c:232 gtk/gtkexpander.c:299 -#: gtk/gtklabel.c:776 gtk/gtkmenuitem.c:655 gtk/gtktoolbutton.c:222 +#: gtk/gtkaccellabel.c:244 gtk/gtkbutton.c:233 gtk/gtkexpander.c:285 +#: gtk/gtklabel.c:777 gtk/gtkmenuitem.c:645 gtk/gtktoolbutton.c:219 msgid "Use underline" msgstr "Aláhúzás használata" -#: gtk/gtkaccellabel.c:249 gtk/gtkbutton.c:233 gtk/gtkexpander.c:300 -#: gtk/gtklabel.c:777 gtk/gtkmenuitem.c:656 +#: gtk/gtkaccellabel.c:245 gtk/gtkbutton.c:234 gtk/gtkexpander.c:286 +#: gtk/gtklabel.c:778 gtk/gtkmenuitem.c:646 msgid "" "If set, an underline in the text indicates the next character should be used " "for the mnemonic accelerator key" @@ -399,8 +438,8 @@ msgstr "" "Ha be van állítva, egy aláhúzás a szövegben a következő karakter " "hívóbetűként való használatát jelzi" -#: gtk/gtkaccessible.c:153 gtk/gtkeventcontroller.c:168 -#: gtk/gtktreeviewcolumn.c:336 +#: gtk/gtkaccessible.c:153 gtk/gtkeventcontroller.c:144 +#: gtk/gtktreeviewcolumn.c:345 gtk/gtkwidgetpaintable.c:245 msgid "Widget" msgstr "Felületi elem" @@ -408,27 +447,27 @@ msgstr "Felületi elem" msgid "The widget referenced by this accessible." msgstr "Az akadálymentes elem által hivatkozott felületi elem." -#: gtk/gtkactionable.c:71 +#: gtk/gtkactionable.c:69 msgid "Action name" msgstr "Műveletnév" -#: gtk/gtkactionable.c:72 +#: gtk/gtkactionable.c:70 msgid "The name of the associated action, like “app.quit”" msgstr "A társított művelet neve, például „app.quit”" -#: gtk/gtkactionable.c:76 +#: gtk/gtkactionable.c:74 msgid "Action target value" msgstr "Művelet célértéke" -#: gtk/gtkactionable.c:77 +#: gtk/gtkactionable.c:75 msgid "The parameter for action invocations" msgstr "A művelethívások paramétere" -#: gtk/gtkactionbar.c:383 gtk/gtkbox.c:245 gtk/gtkheaderbar.c:1869 +#: gtk/gtkactionbar.c:382 gtk/gtkbox.c:236 gtk/gtkheaderbar.c:1836 msgid "Pack type" msgstr "Csomag típusa" -#: gtk/gtkactionbar.c:384 gtk/gtkbox.c:246 gtk/gtkheaderbar.c:1870 +#: gtk/gtkactionbar.c:383 gtk/gtkbox.c:237 gtk/gtkheaderbar.c:1837 msgid "" "A GtkPackType indicating whether the child is packed with reference to the " "start or end of the parent" @@ -436,71 +475,71 @@ msgstr "" "Egy GtkPackType, amely azt jelzi, hogy a gyermekben a hivatkozás a szülő " "elejére vagy végére mutat" -#: gtk/gtkactionbar.c:390 gtk/gtkbox.c:252 gtk/gtkheaderbar.c:1876 -#: gtk/gtknotebook.c:790 gtk/gtkpaned.c:388 gtk/gtkpopover.c:1637 -#: gtk/gtkpopovermenu.c:371 gtk/gtkstack.c:404 gtk/gtktoolitemgroup.c:1618 +#: gtk/gtkactionbar.c:389 gtk/gtkbox.c:243 gtk/gtkheaderbar.c:1843 +#: gtk/gtknotebook.c:774 gtk/gtkpaned.c:394 gtk/gtkpopover.c:1643 +#: gtk/gtkpopovermenu.c:369 gtk/gtkstack.c:399 msgid "Position" msgstr "Pozíció" -#: gtk/gtkactionbar.c:391 gtk/gtkbox.c:253 gtk/gtkheaderbar.c:1877 -#: gtk/gtknotebook.c:791 gtk/gtkpopovermenu.c:372 gtk/gtkstack.c:405 +#: gtk/gtkactionbar.c:390 gtk/gtkbox.c:244 gtk/gtkheaderbar.c:1844 +#: gtk/gtknotebook.c:775 gtk/gtkpopovermenu.c:370 gtk/gtkstack.c:400 msgid "The index of the child in the parent" msgstr "A gyermek indexe a szülőben" -#: gtk/gtkactionbar.c:397 gtk/gtkinfobar.c:353 +#: gtk/gtkactionbar.c:396 gtk/gtkinfobar.c:352 msgid "Reveal" msgstr "Felfedés" -#: gtk/gtkactionbar.c:398 +#: gtk/gtkactionbar.c:397 msgid "Controls whether the action bar shows its contents or not" msgstr "A műveletsáv megjelenítse-e a tartalmát vagy sem" -#: gtk/gtkadjustment.c:142 gtk/gtkcellrendererprogress.c:138 -#: gtk/gtkscalebutton.c:196 gtk/gtkspinbutton.c:397 +#: gtk/gtkadjustment.c:139 gtk/gtkcellrendererprogress.c:136 +#: gtk/gtkscalebutton.c:198 gtk/gtkspinbutton.c:382 msgid "Value" msgstr "Érték" -#: gtk/gtkadjustment.c:143 +#: gtk/gtkadjustment.c:140 msgid "The value of the adjustment" msgstr "Az igazítás értéke" -#: gtk/gtkadjustment.c:157 +#: gtk/gtkadjustment.c:152 msgid "Minimum Value" msgstr "Minimális érték" -#: gtk/gtkadjustment.c:158 +#: gtk/gtkadjustment.c:153 msgid "The minimum value of the adjustment" msgstr "Az igazítás minimális értéke" -#: gtk/gtkadjustment.c:175 +#: gtk/gtkadjustment.c:168 msgid "Maximum Value" msgstr "Maximális érték" -#: gtk/gtkadjustment.c:176 +#: gtk/gtkadjustment.c:169 msgid "The maximum value of the adjustment" msgstr "Az igazítás maximális értéke" -#: gtk/gtkadjustment.c:190 +#: gtk/gtkadjustment.c:181 msgid "Step Increment" msgstr "Lépés növekménye" -#: gtk/gtkadjustment.c:191 +#: gtk/gtkadjustment.c:182 msgid "The step increment of the adjustment" msgstr "Az igazítás lépéseinek növekménye" -#: gtk/gtkadjustment.c:205 +#: gtk/gtkadjustment.c:194 msgid "Page Increment" msgstr "Oldalnövekmény" -#: gtk/gtkadjustment.c:206 +#: gtk/gtkadjustment.c:195 msgid "The page increment of the adjustment" msgstr "Az igazítás oldalnövekménye" -#: gtk/gtkadjustment.c:223 +#: gtk/gtkadjustment.c:210 msgid "Page Size" msgstr "Oldalméret" -#: gtk/gtkadjustment.c:224 +#: gtk/gtkadjustment.c:211 msgid "The page size of the adjustment" msgstr "Az igazítás oldalmérete" @@ -515,19 +554,19 @@ msgid "" msgstr "" "A legördülő menü tartalmazzon-e egy GtkAppChooserDialog-ot indító elemet" -#: gtk/gtkappchooserbutton.c:634 +#: gtk/gtkappchooserbutton.c:632 msgid "Show default item" msgstr "Alap elem megjelenítése" -#: gtk/gtkappchooserbutton.c:635 +#: gtk/gtkappchooserbutton.c:633 msgid "Whether the combobox should show the default application on top" msgstr "A legördülő lista tetején megjelenjen-e az alap alkalmazás" -#: gtk/gtkappchooserbutton.c:647 gtk/gtkappchooserdialog.c:648 +#: gtk/gtkappchooserbutton.c:645 gtk/gtkappchooserdialog.c:640 msgid "Heading" msgstr "Címsor" -#: gtk/gtkappchooserbutton.c:648 gtk/gtkappchooserdialog.c:649 +#: gtk/gtkappchooserbutton.c:646 gtk/gtkappchooserdialog.c:641 msgid "The text to show at the top of the dialog" msgstr "A párbeszédablak tetején megjelenítendő szöveg" @@ -539,179 +578,179 @@ msgstr "Tartalom típusa" msgid "The content type used by the open with object" msgstr "A megnyitás ezzel objektum által használt tartalomtípus" -#: gtk/gtkappchooserdialog.c:634 +#: gtk/gtkappchooserdialog.c:626 msgid "GFile" msgstr "GFile" -#: gtk/gtkappchooserdialog.c:635 +#: gtk/gtkappchooserdialog.c:627 msgid "The GFile used by the app chooser dialog" msgstr "Az alkalmazásválasztó párbeszédablak által használt GFile" -#: gtk/gtkappchooserwidget.c:1018 +#: gtk/gtkappchooserwidget.c:980 msgid "Show default app" msgstr "Alap alkalmazás megjelenítése" -#: gtk/gtkappchooserwidget.c:1019 +#: gtk/gtkappchooserwidget.c:981 msgid "Whether the widget should show the default application" msgstr "A felületi elem megjelenítse-e az alap alkalmazást" -#: gtk/gtkappchooserwidget.c:1033 +#: gtk/gtkappchooserwidget.c:995 msgid "Show recommended apps" msgstr "Javasolt alkalmazások megjelenítése" -#: gtk/gtkappchooserwidget.c:1034 +#: gtk/gtkappchooserwidget.c:996 msgid "Whether the widget should show recommended applications" msgstr "A felületi elem megjelenítse-e a javasolt alkalmazásokat" -#: gtk/gtkappchooserwidget.c:1048 +#: gtk/gtkappchooserwidget.c:1010 msgid "Show fallback apps" msgstr "Tartalék alkalmazások megjelenítése" -#: gtk/gtkappchooserwidget.c:1049 +#: gtk/gtkappchooserwidget.c:1011 msgid "Whether the widget should show fallback applications" msgstr "A felületi elem megjelenítse-e a tartalék alkalmazásokat" -#: gtk/gtkappchooserwidget.c:1061 +#: gtk/gtkappchooserwidget.c:1023 msgid "Show other apps" msgstr "Egyéb alkalmazások megjelenítése" -#: gtk/gtkappchooserwidget.c:1062 +#: gtk/gtkappchooserwidget.c:1024 msgid "Whether the widget should show other applications" msgstr "A felületi elem megjelenítse-e az egyéb alkalmazásokat" -#: gtk/gtkappchooserwidget.c:1075 +#: gtk/gtkappchooserwidget.c:1037 msgid "Show all apps" msgstr "Minden alkalmazás megjelenítése" -#: gtk/gtkappchooserwidget.c:1076 +#: gtk/gtkappchooserwidget.c:1038 msgid "Whether the widget should show all applications" msgstr "A felületi elem megjelenítse-e az összes alkalmazást" -#: gtk/gtkappchooserwidget.c:1090 +#: gtk/gtkappchooserwidget.c:1052 msgid "Widget’s default text" msgstr "A felületi elem alap szövege" -#: gtk/gtkappchooserwidget.c:1091 +#: gtk/gtkappchooserwidget.c:1053 msgid "The default text appearing when there are no applications" msgstr "A megjelenítendő alapszöveg, ha nincsenek alkalmazások" -#: gtk/gtkapplication.c:648 +#: gtk/gtkapplication.c:659 msgid "Register session" msgstr "Munkamenet regisztrálása" -#: gtk/gtkapplication.c:649 +#: gtk/gtkapplication.c:660 msgid "Register with the session manager" msgstr "Regisztrálás a munkamenet-kezelőnél" -#: gtk/gtkapplication.c:655 +#: gtk/gtkapplication.c:666 msgid "Application menu" msgstr "Alkalmazásmenü" -#: gtk/gtkapplication.c:656 +#: gtk/gtkapplication.c:667 msgid "The GMenuModel for the application menu" msgstr "Az alkalmazásmenü GMenuModel-je" -#: gtk/gtkapplication.c:662 +#: gtk/gtkapplication.c:673 msgid "Menubar" msgstr "Menüsáv" -#: gtk/gtkapplication.c:663 +#: gtk/gtkapplication.c:674 msgid "The GMenuModel for the menubar" msgstr "A menüsáv GMenuModel-je" -#: gtk/gtkapplication.c:669 +#: gtk/gtkapplication.c:680 msgid "Active window" msgstr "Aktív ablak" -#: gtk/gtkapplication.c:670 +#: gtk/gtkapplication.c:681 msgid "The window which most recently had focus" msgstr "A fókusszal legutóbb rendelkező ablak" -#: gtk/gtkapplicationwindow.c:832 +#: gtk/gtkapplicationwindow.c:833 msgid "Show a menubar" msgstr "Menüsáv megjelenítése" -#: gtk/gtkapplicationwindow.c:833 +#: gtk/gtkapplicationwindow.c:834 msgid "TRUE if the window should show a menubar at the top of the window" msgstr "Ha IGAZ, akkor az ablak tetején megjelenjen egy menüsáv" -#: gtk/gtkaspectframe.c:111 gtk/gtkwidget.c:1278 +#: gtk/gtkaspectframe.c:109 gtk/gtkwidget.c:1132 msgid "Horizontal Alignment" msgstr "Vízszintes igazítás" -#: gtk/gtkaspectframe.c:112 +#: gtk/gtkaspectframe.c:110 msgid "X alignment of the child" msgstr "A gyermek X irányú igazítása" -#: gtk/gtkaspectframe.c:118 gtk/gtkwidget.c:1293 +#: gtk/gtkaspectframe.c:116 gtk/gtkwidget.c:1145 msgid "Vertical Alignment" msgstr "Függőleges igazítás" -#: gtk/gtkaspectframe.c:119 +#: gtk/gtkaspectframe.c:117 msgid "Y alignment of the child" msgstr "A gyermek Y irányú igazítása" -#: gtk/gtkaspectframe.c:125 +#: gtk/gtkaspectframe.c:123 msgid "Ratio" msgstr "Arány" -#: gtk/gtkaspectframe.c:126 +#: gtk/gtkaspectframe.c:124 msgid "Aspect ratio if obey_child is FALSE" msgstr "Képarány, ha az obey_child értéke HAMIS" -#: gtk/gtkaspectframe.c:132 +#: gtk/gtkaspectframe.c:130 msgid "Obey child" msgstr "Gyermek követése" -#: gtk/gtkaspectframe.c:133 +#: gtk/gtkaspectframe.c:131 msgid "Force aspect ratio to match that of the frame’s child" msgstr "A képarány beállítása a keret gyermekével megegyezőre" -#: gtk/gtkassistant.c:513 gtk/gtkdialog.c:583 +#: gtk/gtkassistant.c:507 gtk/gtkdialog.c:584 msgid "Use Header Bar" msgstr "Fejlécsáv használata" -#: gtk/gtkassistant.c:514 gtk/gtkdialog.c:584 +#: gtk/gtkassistant.c:508 gtk/gtkdialog.c:585 msgid "Use Header Bar for actions." msgstr "Fejlécsáv használata a műveletekhez" -#: gtk/gtkassistant.c:528 +#: gtk/gtkassistant.c:520 msgid "Page type" msgstr "Oldal típusa" -#: gtk/gtkassistant.c:529 +#: gtk/gtkassistant.c:521 msgid "The type of the assistant page" msgstr "A varázslóoldal típusa" -#: gtk/gtkassistant.c:544 +#: gtk/gtkassistant.c:534 msgid "Page title" msgstr "Oldalcím" -#: gtk/gtkassistant.c:545 +#: gtk/gtkassistant.c:535 msgid "The title of the assistant page" msgstr "A varázslóoldal címe" -#: gtk/gtkassistant.c:561 +#: gtk/gtkassistant.c:549 msgid "Page complete" msgstr "Az oldal kitöltve" -#: gtk/gtkassistant.c:562 +#: gtk/gtkassistant.c:550 msgid "Whether all required fields on the page have been filled out" msgstr "Az oldal összes kötelező mezője ki lett-e töltve" -#: gtk/gtkassistant.c:567 +#: gtk/gtkassistant.c:555 msgid "Has padding" msgstr "Van térköze" -#: gtk/gtkassistant.c:567 +#: gtk/gtkassistant.c:555 msgid "Whether the assistant adds padding around the page" msgstr "A varázsló ad-e hozzá térközt az oldal köré" -#: gtk/gtkbbox.c:153 +#: gtk/gtkbbox.c:152 msgid "Layout style" msgstr "Elrendezés stílusa" -#: gtk/gtkbbox.c:154 +#: gtk/gtkbbox.c:153 msgid "" "How to lay out the buttons in the box. Possible values are: spread, edge, " "start and end" @@ -719,11 +758,11 @@ msgstr "" "A gombok elrendezése a dobozon belül. A lehetséges értékek: spread, edge, " "start és end" -#: gtk/gtkbbox.c:162 +#: gtk/gtkbbox.c:161 msgid "Secondary" msgstr "Másodlagos" -#: gtk/gtkbbox.c:163 +#: gtk/gtkbbox.c:162 msgid "" "If TRUE, the child appears in a secondary group of children, suitable for, e." "g., help buttons" @@ -731,94 +770,94 @@ msgstr "" "Ha IGAZ, a gyermek gyermekek egy másodlagos csoportjában jelenik meg; " "hasznos például súgógombokhoz" -#: gtk/gtkbbox.c:170 +#: gtk/gtkbbox.c:169 msgid "Non-Homogeneous" msgstr "Nem homogén" -#: gtk/gtkbbox.c:171 +#: gtk/gtkbbox.c:170 msgid "If TRUE, the child will not be subject to homogeneous sizing" msgstr "Ha IGAZ, akkor a gyermek nem lesz homogén méretezés alanya" -#: gtk/gtkbox.c:221 gtk/gtkcellareabox.c:310 gtk/gtkheaderbar.c:1904 -#: gtk/gtkiconview.c:510 gtk/gtktreeviewcolumn.c:275 +#: gtk/gtkbox.c:212 gtk/gtkcellareabox.c:308 gtk/gtkheaderbar.c:1871 +#: gtk/gtkiconview.c:493 gtk/gtktreeviewcolumn.c:284 msgid "Spacing" msgstr "Távolság" -#: gtk/gtkbox.c:222 gtk/gtkheaderbar.c:1905 +#: gtk/gtkbox.c:213 gtk/gtkheaderbar.c:1872 msgid "The amount of space between children" msgstr "A gyermekek közötti távolság" -#: gtk/gtkbox.c:228 gtk/gtkflowbox.c:3496 gtk/gtkstack.c:326 -#: gtk/gtktoolbar.c:561 gtk/gtktoolitemgroup.c:1590 +#: gtk/gtkbox.c:219 gtk/gtkflowbox.c:3465 gtk/gtkstack.c:325 +#: gtk/gtktoolbar.c:513 msgid "Homogeneous" msgstr "Homogén" -#: gtk/gtkbox.c:229 gtk/gtkflowbox.c:3497 +#: gtk/gtkbox.c:220 gtk/gtkflowbox.c:3466 msgid "Whether the children should all be the same size" msgstr "A gyermekeknek egyforma méretűeknek kell-e lenniük" -#: gtk/gtkbox.c:235 gtk/gtkcenterbox.c:710 +#: gtk/gtkbox.c:226 gtk/gtkcenterbox.c:663 msgid "Baseline position" msgstr "Alapvonal helye" -#: gtk/gtkbox.c:236 gtk/gtkcenterbox.c:711 +#: gtk/gtkbox.c:227 gtk/gtkcenterbox.c:664 msgid "" "The position of the baseline aligned widgets if extra space is available" msgstr "Az alapvonalra igazított felületi elemek helye, ha elérhető extra hely" -#: gtk/gtkbuilder.c:282 +#: gtk/gtkbuilder.c:280 msgid "Translation Domain" msgstr "Fordítási tartomány" -#: gtk/gtkbuilder.c:283 +#: gtk/gtkbuilder.c:281 msgid "The translation domain used by gettext" msgstr "A gettext által használt fordítási tartomány" -#: gtk/gtkbutton.c:226 +#: gtk/gtkbutton.c:227 msgid "" "Text of the label widget inside the button, if the button contains a label " "widget" msgstr "" "A címke elem szövege a gombon belül, amennyiben a gomb tartalmaz címke elemet" -#: gtk/gtkbutton.c:239 +#: gtk/gtkbutton.c:240 msgid "Border relief" msgstr "Szegélykiemelés" -#: gtk/gtkbutton.c:240 +#: gtk/gtkbutton.c:241 msgid "The border relief style" msgstr "A szegélykiemelés stílusa" -#: gtk/gtkbutton.c:247 gtk/gtkcellrendererpixbuf.c:210 gtk/gtkimage.c:231 -#: gtk/gtkprinter.c:170 gtk/gtkwindow.c:976 +#: gtk/gtkbutton.c:248 gtk/gtkcellrendererpixbuf.c:200 gtk/gtkimage.c:197 +#: gtk/gtkprinter.c:170 gtk/gtkwindow.c:958 msgid "Icon Name" msgstr "Ikonnév" -#: gtk/gtkbutton.c:248 +#: gtk/gtkbutton.c:249 msgid "The name of the icon used to automatically populate the button" msgstr "A használandó ikon neve a gomb automatikus kitöltéséhez" -#: gtk/gtkcalendar.c:384 +#: gtk/gtkcalendar.c:388 msgid "Year" msgstr "Év" -#: gtk/gtkcalendar.c:385 +#: gtk/gtkcalendar.c:389 msgid "The selected year" msgstr "A kiválasztott év" -#: gtk/gtkcalendar.c:398 +#: gtk/gtkcalendar.c:402 msgid "Month" msgstr "Hónap" -#: gtk/gtkcalendar.c:399 +#: gtk/gtkcalendar.c:403 msgid "The selected month (as a number between 0 and 11)" msgstr "A kiválasztott hónap (0 és 11 közötti számként megadva)" -#: gtk/gtkcalendar.c:413 +#: gtk/gtkcalendar.c:417 msgid "Day" msgstr "Nap" -#: gtk/gtkcalendar.c:414 +#: gtk/gtkcalendar.c:418 msgid "" "The selected day (as a number between 1 and 31, or 0 to unselect the " "currently selected day)" @@ -826,11 +865,11 @@ msgstr "" "A kiválasztott hónap (1 és 31 közötti számként megadva, vagy 0 az aktuális " "nap kiválasztásának megszüntetésére)" -#: gtk/gtkcalendar.c:428 +#: gtk/gtkcalendar.c:430 msgid "Show Heading" msgstr "Fejléc megjelenítése" -#: gtk/gtkcalendar.c:429 +#: gtk/gtkcalendar.c:431 msgid "If TRUE, a heading is displayed" msgstr "Ha IGAZ, akkor egy megjelenik egy fejléc" @@ -842,80 +881,79 @@ msgstr "Napok neveinek megjelenítése" msgid "If TRUE, day names are displayed" msgstr "Ha IGAZ, a napok nevei megjelenítésre kerülnek" -#: gtk/gtkcalendar.c:457 +#: gtk/gtkcalendar.c:455 msgid "No Month Change" msgstr "Nincs hónapváltás" -#: gtk/gtkcalendar.c:458 +#: gtk/gtkcalendar.c:456 msgid "If TRUE, the selected month cannot be changed" msgstr "Ha IGAZ, a kiválasztott hónap nem módosítható" -#: gtk/gtkcalendar.c:472 +#: gtk/gtkcalendar.c:468 msgid "Show Week Numbers" msgstr "Hetek számának megjelenítése" -#: gtk/gtkcalendar.c:473 +#: gtk/gtkcalendar.c:469 msgid "If TRUE, week numbers are displayed" msgstr "Ha IGAZ, megjelenítésre kerül a hetek sorszáma" -#: gtk/gtkcalendar.c:488 +#: gtk/gtkcalendar.c:482 msgid "Details Width" msgstr "Részletek szélessége" -#: gtk/gtkcalendar.c:489 +#: gtk/gtkcalendar.c:483 msgid "Details width in characters" msgstr "Részletek szélessége karakterben" -#: gtk/gtkcalendar.c:504 +#: gtk/gtkcalendar.c:496 msgid "Details Height" msgstr "Részletek magassága" -#: gtk/gtkcalendar.c:505 +#: gtk/gtkcalendar.c:497 msgid "Details height in rows" msgstr "Részletek magassága sorokban" -#: gtk/gtkcalendar.c:521 +#: gtk/gtkcalendar.c:511 msgid "Show Details" msgstr "Részletek mutatása" -#: gtk/gtkcalendar.c:522 +#: gtk/gtkcalendar.c:512 msgid "If TRUE, details are shown" msgstr "Ha IGAZ, megjelenítésre kerülnek a részletek" -#: gtk/gtkcellareabox.c:311 gtk/gtktreeviewcolumn.c:276 +#: gtk/gtkcellareabox.c:309 gtk/gtktreeviewcolumn.c:285 msgid "Space which is inserted between cells" msgstr "A cellák közé beszúrt terület" -#: gtk/gtkcellareabox.c:330 gtk/gtktoolbar.c:553 gtk/gtktoolitemgroup.c:1597 -#: gtk/gtktoolpalette.c:977 gtk/gtktreeviewcolumn.c:322 +#: gtk/gtkcellareabox.c:326 gtk/gtktoolbar.c:505 gtk/gtktreeviewcolumn.c:331 msgid "Expand" msgstr "Kibővítés" -#: gtk/gtkcellareabox.c:331 +#: gtk/gtkcellareabox.c:327 msgid "Whether the cell expands" msgstr "A cella bővül-e" -#: gtk/gtkcellareabox.c:346 +#: gtk/gtkcellareabox.c:340 msgid "Align" msgstr "Igazítás" -#: gtk/gtkcellareabox.c:347 +#: gtk/gtkcellareabox.c:341 msgid "Whether cell should align with adjacent rows" msgstr "A cella igazodik-e a szomszédos sorokhoz" -#: gtk/gtkcellareabox.c:363 +#: gtk/gtkcellareabox.c:355 msgid "Fixed Size" msgstr "Rögzített méret" -#: gtk/gtkcellareabox.c:364 +#: gtk/gtkcellareabox.c:356 msgid "Whether cells should be the same size in all rows" msgstr "A celláknak egyforma méretűeknek kell-e lenniük minden sorban" -#: gtk/gtkcellareabox.c:380 +#: gtk/gtkcellareabox.c:370 msgid "Pack Type" msgstr "Csomagolás típusa" -#: gtk/gtkcellareabox.c:381 +#: gtk/gtkcellareabox.c:371 msgid "" "A GtkPackType indicating whether the cell is packed with reference to the " "start or end of the cell area" @@ -923,334 +961,321 @@ msgstr "" "Egy GtkPackType, amely azt jelzi, hogy a cellában a hivatkozás a " "cellaterület elejére vagy végére mutat" -#: gtk/gtkcellarea.c:791 +#: gtk/gtkcellarea.c:779 msgid "Focus Cell" msgstr "Fókuszált cella" -#: gtk/gtkcellarea.c:792 +#: gtk/gtkcellarea.c:780 msgid "The cell which currently has focus" msgstr "A fókusszal rendelkező cella" -#: gtk/gtkcellarea.c:810 +#: gtk/gtkcellarea.c:795 msgid "Edited Cell" msgstr "Szerkesztett cella" -#: gtk/gtkcellarea.c:811 +#: gtk/gtkcellarea.c:796 msgid "The cell which is currently being edited" msgstr "A jelenleg szerkesztett cella" -#: gtk/gtkcellarea.c:829 +#: gtk/gtkcellarea.c:811 msgid "Edit Widget" msgstr "Felületi elem szerkesztése" -#: gtk/gtkcellarea.c:830 +#: gtk/gtkcellarea.c:812 msgid "The widget currently editing the edited cell" msgstr "A szerkesztett cellát jelenlegi oldala szerkesztő felületi elem" -#: gtk/gtkcellareacontext.c:115 +#: gtk/gtkcellareacontext.c:113 msgid "Area" msgstr "Terület" -#: gtk/gtkcellareacontext.c:116 +#: gtk/gtkcellareacontext.c:114 msgid "The Cell Area this context was created for" msgstr "A cellaterület, amelyhez a környezet létrejött" -#: gtk/gtkcellareacontext.c:132 gtk/gtkcellareacontext.c:151 -#: gtk/gtktreeviewcolumn.c:299 +#: gtk/gtkcellareacontext.c:128 gtk/gtkcellareacontext.c:143 +#: gtk/gtktreeviewcolumn.c:308 msgid "Minimum Width" msgstr "Minimális szélesség" -#: gtk/gtkcellareacontext.c:133 gtk/gtkcellareacontext.c:152 +#: gtk/gtkcellareacontext.c:129 gtk/gtkcellareacontext.c:144 msgid "Minimum cached width" msgstr "Minimális gyorsítótárazott szélesség" -#: gtk/gtkcellareacontext.c:170 gtk/gtkcellareacontext.c:189 +#: gtk/gtkcellareacontext.c:158 gtk/gtkcellareacontext.c:173 msgid "Minimum Height" msgstr "Minimális magasság" -#: gtk/gtkcellareacontext.c:171 gtk/gtkcellareacontext.c:190 +#: gtk/gtkcellareacontext.c:159 gtk/gtkcellareacontext.c:174 msgid "Minimum cached height" msgstr "Minimális gyorsítótárazott magasság" -#: gtk/gtkcelleditable.c:51 +#: gtk/gtkcelleditable.c:49 msgid "Editing Canceled" msgstr "Szerkesztés megszakítva" -#: gtk/gtkcelleditable.c:52 +#: gtk/gtkcelleditable.c:50 msgid "Indicates that editing has been canceled" msgstr "Jelzi, hogy a szerkesztés meg lett szakítva" -#: gtk/gtkcellrendereraccel.c:140 +#: gtk/gtkcellrendereraccel.c:150 msgid "Accelerator key" msgstr "Gyorsbillentyű" -#: gtk/gtkcellrendereraccel.c:141 +#: gtk/gtkcellrendereraccel.c:151 msgid "The keyval of the accelerator" msgstr "A gyorsbillentyű értéke" -#: gtk/gtkcellrendereraccel.c:157 +#: gtk/gtkcellrendereraccel.c:165 msgid "Accelerator modifiers" msgstr "Gyorsbillentyű módosítói" -#: gtk/gtkcellrendereraccel.c:158 +#: gtk/gtkcellrendereraccel.c:166 msgid "The modifier mask of the accelerator" msgstr "A gyorsbillentyű módosítómaszkja" -#: gtk/gtkcellrendereraccel.c:175 +#: gtk/gtkcellrendereraccel.c:181 msgid "Accelerator keycode" msgstr "Gyorsbillentyű billentyűkódja" -#: gtk/gtkcellrendereraccel.c:176 +#: gtk/gtkcellrendereraccel.c:182 msgid "The hardware keycode of the accelerator" msgstr "A gyorsbillentyű hardveres billentyűkódja" -#: gtk/gtkcellrendereraccel.c:195 +#: gtk/gtkcellrendereraccel.c:199 msgid "Accelerator Mode" msgstr "Gyorsbillentyű módja" -#: gtk/gtkcellrendereraccel.c:196 +#: gtk/gtkcellrendereraccel.c:200 msgid "The type of accelerators" msgstr "A gyorsbillentyűk típusa" -#: gtk/gtkcellrenderer.c:284 +#: gtk/gtkcellrenderer.c:288 msgid "mode" msgstr "mód" -#: gtk/gtkcellrenderer.c:285 +#: gtk/gtkcellrenderer.c:289 msgid "Editable mode of the CellRenderer" msgstr "A CellRenderer szerkeszthető módja" -#: gtk/gtkcellrenderer.c:293 +#: gtk/gtkcellrenderer.c:297 msgid "visible" msgstr "látható" -#: gtk/gtkcellrenderer.c:294 +#: gtk/gtkcellrenderer.c:298 msgid "Display the cell" msgstr "A cella megjelenítése" -#: gtk/gtkcellrenderer.c:300 gtk/gtkwidget.c:1119 +#: gtk/gtkcellrenderer.c:304 gtk/gtkwidget.c:978 msgid "Sensitive" msgstr "Érzékeny" -#: gtk/gtkcellrenderer.c:301 +#: gtk/gtkcellrenderer.c:305 msgid "Display the cell sensitive" msgstr "A cella érzékeny megjelenítése" -#: gtk/gtkcellrenderer.c:308 +#: gtk/gtkcellrenderer.c:312 msgid "xalign" msgstr "xalign" -#: gtk/gtkcellrenderer.c:309 +#: gtk/gtkcellrenderer.c:313 msgid "The x-align" msgstr "Az x-igazítás" -#: gtk/gtkcellrenderer.c:318 +#: gtk/gtkcellrenderer.c:322 msgid "yalign" msgstr "yalign" -#: gtk/gtkcellrenderer.c:319 +#: gtk/gtkcellrenderer.c:323 msgid "The y-align" msgstr "Az y-igazítás" -#: gtk/gtkcellrenderer.c:328 +#: gtk/gtkcellrenderer.c:332 msgid "xpad" msgstr "xpad" -#: gtk/gtkcellrenderer.c:329 +#: gtk/gtkcellrenderer.c:333 msgid "The xpad" msgstr "Az xpad" -#: gtk/gtkcellrenderer.c:338 +#: gtk/gtkcellrenderer.c:342 msgid "ypad" msgstr "ypad" -#: gtk/gtkcellrenderer.c:339 +#: gtk/gtkcellrenderer.c:343 msgid "The ypad" msgstr "Az ypad" -#: gtk/gtkcellrenderer.c:348 +#: gtk/gtkcellrenderer.c:352 msgid "width" msgstr "szélesség" -#: gtk/gtkcellrenderer.c:349 +#: gtk/gtkcellrenderer.c:353 msgid "The fixed width" msgstr "A rögzített szélesség" -#: gtk/gtkcellrenderer.c:358 +#: gtk/gtkcellrenderer.c:362 msgid "height" msgstr "magasság" -#: gtk/gtkcellrenderer.c:359 +#: gtk/gtkcellrenderer.c:363 msgid "The fixed height" msgstr "A rögzített magasság" -#: gtk/gtkcellrenderer.c:368 +#: gtk/gtkcellrenderer.c:372 msgid "Is Expander" msgstr "Kiterjesztő" -#: gtk/gtkcellrenderer.c:369 +#: gtk/gtkcellrenderer.c:373 msgid "Row has children" msgstr "A sornak vannak gyermekei" -#: gtk/gtkcellrenderer.c:377 +#: gtk/gtkcellrenderer.c:381 msgid "Is Expanded" msgstr "Kiterjesztett-e" -#: gtk/gtkcellrenderer.c:378 +#: gtk/gtkcellrenderer.c:382 msgid "Row is an expander row, and is expanded" msgstr "A sor egy kiterjesztő sor, és ki is van terjesztve" -#: gtk/gtkcellrenderer.c:385 +#: gtk/gtkcellrenderer.c:389 msgid "Cell background color name" msgstr "Cella háttérszínének neve" -#: gtk/gtkcellrenderer.c:386 +#: gtk/gtkcellrenderer.c:390 msgid "Cell background color as a string" msgstr "Cella háttérszíne karakterláncként" -#: gtk/gtkcellrenderer.c:400 +#: gtk/gtkcellrenderer.c:402 msgid "Cell background RGBA color" msgstr "Cellaháttér RGBA színe" -#: gtk/gtkcellrenderer.c:401 +#: gtk/gtkcellrenderer.c:403 msgid "Cell background color as a GdkRGBA" msgstr "Cella háttérszíne GdkRGBA-ként" -#: gtk/gtkcellrenderer.c:408 +#: gtk/gtkcellrenderer.c:410 msgid "Editing" msgstr "Szerkesztés" -#: gtk/gtkcellrenderer.c:409 +#: gtk/gtkcellrenderer.c:411 msgid "Whether the cell renderer is currently in editing mode" msgstr "A cellamegjelenítő szerkesztési módban van-e" -#: gtk/gtkcellrenderer.c:417 +#: gtk/gtkcellrenderer.c:419 msgid "Cell background set" msgstr "Cella háttérszínének beállítása" -#: gtk/gtkcellrenderer.c:418 +#: gtk/gtkcellrenderer.c:420 msgid "Whether the cell background color is set" msgstr "A cella háttérszíne be van-e állítva" -#: gtk/gtkcellrenderercombo.c:126 +#: gtk/gtkcellrenderercombo.c:124 msgid "Model" msgstr "Modell" -#: gtk/gtkcellrenderercombo.c:127 +#: gtk/gtkcellrenderercombo.c:125 msgid "The model containing the possible values for the combo box" msgstr "A kombinált mező lehetséges értékeit tartalmazó modell" -#: gtk/gtkcellrenderercombo.c:149 +#: gtk/gtkcellrenderercombo.c:145 msgid "Text Column" msgstr "Szövegoszlop" -#: gtk/gtkcellrenderercombo.c:150 +#: gtk/gtkcellrenderercombo.c:146 msgid "A column in the data source model to get the strings from" msgstr "" "Az adatforrás-modell egy oszlopa, ahonnan a karakterláncokat veszi a rendszer" -#: gtk/gtkcellrenderercombo.c:167 gtk/gtkcombobox.c:809 +#: gtk/gtkcellrenderercombo.c:161 gtk/gtkcombobox.c:772 msgid "Has Entry" msgstr "Van bevitel" -#: gtk/gtkcellrenderercombo.c:168 +#: gtk/gtkcellrenderercombo.c:162 msgid "If FALSE, don’t allow to enter strings other than the chosen ones" msgstr "" "Ha HAMIS, nem lehet más szöveget megadni, csak a meglévőket kiválasztani" -#: gtk/gtkcellrendererpixbuf.c:146 +#: gtk/gtkcellrendererpixbuf.c:145 msgid "Pixbuf Object" msgstr "Pixbuf objektum" -#: gtk/gtkcellrendererpixbuf.c:147 +#: gtk/gtkcellrendererpixbuf.c:146 msgid "The pixbuf to render" msgstr "A megjelenítendő pixbuf" -#: gtk/gtkcellrendererpixbuf.c:154 +#: gtk/gtkcellrendererpixbuf.c:153 msgid "Pixbuf Expander Open" msgstr "Pixbuf nyílt kiterjesztő" -#: gtk/gtkcellrendererpixbuf.c:155 +#: gtk/gtkcellrendererpixbuf.c:154 msgid "Pixbuf for open expander" msgstr "Pixbuf egy nyílt kiterjesztőhöz" -#: gtk/gtkcellrendererpixbuf.c:162 +#: gtk/gtkcellrendererpixbuf.c:161 msgid "Pixbuf Expander Closed" msgstr "Pixbuf zárt kiterjesztő" -#: gtk/gtkcellrendererpixbuf.c:163 +#: gtk/gtkcellrendererpixbuf.c:162 msgid "Pixbuf for closed expander" msgstr "Pixbuf egy zárt kiterjesztőhöz" -#: gtk/gtkcellrendererpixbuf.c:174 -msgid "surface" -msgstr "Felület" - -#: gtk/gtkcellrendererpixbuf.c:175 -msgid "The surface to render" -msgstr "A megjelenítendő felület" +#: gtk/gtkcellrendererpixbuf.c:173 +msgid "The texture to render" +msgstr "A megjelenítendő textúra" -#: gtk/gtkcellrendererpixbuf.c:182 gtk/gtkcellrendererspinner.c:153 -#: gtk/gtkrecentmanager.c:304 -msgid "Size" -msgstr "Méret" +#: gtk/gtkcellrendererpixbuf.c:185 +msgid "Icon Size" +msgstr "Ikonméret" -#: gtk/gtkcellrendererpixbuf.c:183 +#: gtk/gtkcellrendererpixbuf.c:186 msgid "The GtkIconSize value that specifies the size of the rendered icon" msgstr "A megjelenített ikon méretét meghatározó GtkIconSize érték" -#: gtk/gtkcellrendererpixbuf.c:192 -msgid "Detail" -msgstr "Részletek" - -#: gtk/gtkcellrendererpixbuf.c:193 -msgid "Render detail to pass to the theme engine" -msgstr "A témakezelő alrendszernek átadandó megjelenítési részletek" - -#: gtk/gtkcellrendererpixbuf.c:211 gtk/gtkimage.c:232 +#: gtk/gtkcellrendererpixbuf.c:201 gtk/gtkimage.c:198 msgid "The name of the icon from the icon theme" msgstr "Az ikon neve az ikontémában" -#: gtk/gtkcellrendererpixbuf.c:227 gtk/gtkimage.c:247 gtk/gtkmodelbutton.c:950 -#: gtk/gtkshortcutsshortcut.c:585 gtk/gtkwindow.c:927 +#: gtk/gtkcellrendererpixbuf.c:215 gtk/gtkimage.c:211 gtk/gtkmodelbutton.c:964 +#: gtk/gtkshortcutsshortcut.c:585 gtk/gtkwindow.c:915 msgid "Icon" msgstr "Ikon" -#: gtk/gtkcellrendererpixbuf.c:228 gtk/gtkimage.c:248 +#: gtk/gtkcellrendererpixbuf.c:216 gtk/gtkimage.c:212 msgid "The GIcon being displayed" msgstr "A megjelenítendő GIcon" -#: gtk/gtkcellrendererprogress.c:139 +#: gtk/gtkcellrendererprogress.c:137 msgid "Value of the progress bar" msgstr "A folyamatjelző értéke" -#: gtk/gtkcellrendererprogress.c:156 gtk/gtkcellrenderertext.c:253 -#: gtk/gtkentrybuffer.c:350 gtk/gtkentry.c:865 gtk/gtkmessagedialog.c:201 -#: gtk/gtkmodelbutton.c:964 gtk/gtkprogressbar.c:215 gtk/gtkspinbutton.c:423 -#: gtk/gtktextbuffer.c:218 +#: gtk/gtkcellrendererprogress.c:152 gtk/gtkcellrenderertext.c:254 +#: gtk/gtkentrybuffer.c:351 gtk/gtkentry.c:924 gtk/gtkmessagedialog.c:198 +#: gtk/gtkmodelbutton.c:976 gtk/gtkprogressbar.c:213 gtk/gtkspinbutton.c:405 +#: gtk/gtktextbuffer.c:425 msgid "Text" msgstr "Szöveg" -#: gtk/gtkcellrendererprogress.c:157 +#: gtk/gtkcellrendererprogress.c:153 msgid "Text on the progress bar" msgstr "Szöveg a folyamatjelzőn" -#: gtk/gtkcellrendererprogress.c:180 gtk/gtkcellrendererspinner.c:138 +#: gtk/gtkcellrendererprogress.c:174 gtk/gtkcellrendererspinner.c:136 msgid "Pulse" msgstr "Pulzus" -#: gtk/gtkcellrendererprogress.c:181 +#: gtk/gtkcellrendererprogress.c:175 msgid "" "Set this to positive values to indicate that some progress is made, but you " "don’t know how much." msgstr "" "Állítsa ezt pozitív értékre annak bizonytalan mértékű előrehaladás jelzésére." -#: gtk/gtkcellrendererprogress.c:197 +#: gtk/gtkcellrendererprogress.c:189 msgid "Text x alignment" msgstr "Szöveg x-igazítása" -#: gtk/gtkcellrendererprogress.c:198 +#: gtk/gtkcellrendererprogress.c:190 msgid "" "The horizontal text alignment, from 0 (left) to 1 (right). Reversed for RTL " "layouts." @@ -1258,52 +1283,52 @@ msgstr "" "A vízszintes szövegigazítás, 0 (bal) és 1 (jobb) között. RTL elrendezéseknél " "fordított az érték." -#: gtk/gtkcellrendererprogress.c:214 +#: gtk/gtkcellrendererprogress.c:204 msgid "Text y alignment" msgstr "Szöveg y-igazítása" -#: gtk/gtkcellrendererprogress.c:215 +#: gtk/gtkcellrendererprogress.c:205 msgid "The vertical text alignment, from 0 (top) to 1 (bottom)." msgstr "A függőleges szövegigazítás, 0 (felül) és 1 (alul) között." -#: gtk/gtkcellrendererprogress.c:226 gtk/gtklevelbar.c:1054 -#: gtk/gtkmodelbutton.c:1010 gtk/gtkprogressbar.c:192 gtk/gtkrange.c:391 +#: gtk/gtkcellrendererprogress.c:216 gtk/gtklevelbar.c:1042 +#: gtk/gtkmodelbutton.c:1030 gtk/gtkprogressbar.c:190 gtk/gtkrange.c:379 msgid "Inverted" msgstr "Fordított" -#: gtk/gtkcellrendererprogress.c:227 gtk/gtkprogressbar.c:193 +#: gtk/gtkcellrendererprogress.c:217 gtk/gtkprogressbar.c:191 msgid "Invert the direction in which the progress bar grows" msgstr "A folyamatjelző növekedési irányának megfordítása" -#: gtk/gtkcellrendererspin.c:114 gtk/gtkrange.c:384 gtk/gtkscalebutton.c:215 -#: gtk/gtkscrollbar.c:223 gtk/gtkspinbutton.c:340 +#: gtk/gtkcellrendererspin.c:119 gtk/gtkrange.c:372 gtk/gtkscalebutton.c:208 +#: gtk/gtkscrollbar.c:222 gtk/gtkspinbutton.c:332 msgid "Adjustment" msgstr "Igazítás" -#: gtk/gtkcellrendererspin.c:115 gtk/gtkspinbutton.c:341 +#: gtk/gtkcellrendererspin.c:120 gtk/gtkspinbutton.c:333 msgid "The adjustment that holds the value of the spin button" msgstr "A léptetőgomb értékét tartalmazó igazítás" -#: gtk/gtkcellrendererspin.c:130 +#: gtk/gtkcellrendererspin.c:133 msgid "Climb rate" msgstr "Emelkedési sebesség" -#: gtk/gtkcellrendererspin.c:131 gtk/gtkspinbutton.c:349 +#: gtk/gtkcellrendererspin.c:134 msgid "The acceleration rate when you hold down a button" msgstr "A gomb lenyomásakor a gyorsulási sebesség" -#: gtk/gtkcellrendererspin.c:144 gtk/gtkscale.c:709 gtk/gtkspinbutton.c:356 +#: gtk/gtkcellrendererspin.c:145 gtk/gtkscale.c:704 gtk/gtkspinbutton.c:346 msgid "Digits" msgstr "Számjegyek" -#: gtk/gtkcellrendererspin.c:145 gtk/gtkspinbutton.c:357 +#: gtk/gtkcellrendererspin.c:146 gtk/gtkspinbutton.c:347 msgid "The number of decimal places to display" msgstr "A megjelenítendő tizedesjegyek száma" -#: gtk/gtkcellrendererspinner.c:119 gtk/gtkcheckmenuitem.c:182 -#: gtk/gtkmenu.c:614 gtk/gtkmodelbutton.c:979 gtk/gtkmodelbutton.c:980 -#: gtk/gtkspinner.c:203 gtk/gtkswitch.c:531 gtk/gtktogglebutton.c:156 -#: gtk/gtktoggletoolbutton.c:115 +#: gtk/gtkcellrendererspinner.c:119 gtk/gtkcheckmenuitem.c:177 +#: gtk/gtkmenu.c:600 gtk/gtkmodelbutton.c:1003 gtk/gtkmodelbutton.c:1004 +#: gtk/gtkspinner.c:199 gtk/gtkswitch.c:521 gtk/gtktogglebutton.c:160 +#: gtk/gtktoggletoolbutton.c:113 msgid "Active" msgstr "Aktív" @@ -1311,177 +1336,181 @@ msgstr "Aktív" msgid "Whether the spinner is active (ie. shown) in the cell" msgstr "A forgó aktív-e (azaz látható) a cellában?" -#: gtk/gtkcellrendererspinner.c:139 +#: gtk/gtkcellrendererspinner.c:137 msgid "Pulse of the spinner" msgstr "A forgó mérete" -#: gtk/gtkcellrendererspinner.c:154 +#: gtk/gtkcellrendererspinner.c:149 gtk/gtkrecentmanager.c:295 +msgid "Size" +msgstr "Méret" + +#: gtk/gtkcellrendererspinner.c:150 msgid "The GtkIconSize value that specifies the size of the rendered spinner" msgstr "A megjelenített forgó méretét meghatározó GtkIconSize érték" -#: gtk/gtkcellrenderertext.c:254 +#: gtk/gtkcellrenderertext.c:255 msgid "Text to render" msgstr "Megjelenítendő szöveg" -#: gtk/gtkcellrenderertext.c:260 +#: gtk/gtkcellrenderertext.c:261 msgid "Markup" msgstr "Jelölőkód" -#: gtk/gtkcellrenderertext.c:261 +#: gtk/gtkcellrenderertext.c:262 msgid "Marked up text to render" msgstr "Megjelenítendő formázott szöveg" -#: gtk/gtkcellrenderertext.c:267 gtk/gtkentry.c:1354 gtk/gtklabel.c:762 +#: gtk/gtkcellrenderertext.c:268 gtk/gtkentry.c:1353 gtk/gtklabel.c:763 msgid "Attributes" msgstr "Attribútumok" -#: gtk/gtkcellrenderertext.c:268 +#: gtk/gtkcellrenderertext.c:269 msgid "A list of style attributes to apply to the text of the renderer" msgstr "A megjelenítő szövegére alkalmazandó stílusattribútumok listája" -#: gtk/gtkcellrenderertext.c:274 +#: gtk/gtkcellrenderertext.c:275 msgid "Single Paragraph Mode" msgstr "Egybekezdéses mód" -#: gtk/gtkcellrenderertext.c:275 +#: gtk/gtkcellrenderertext.c:276 msgid "Whether to keep all text in a single paragraph" msgstr "Minden szöveget egy bekezdésben kell-e tartani" -#: gtk/gtkcellrenderertext.c:281 gtk/gtktexttag.c:211 +#: gtk/gtkcellrenderertext.c:282 gtk/gtktexttag.c:204 msgid "Background color name" msgstr "Háttérszín neve" -#: gtk/gtkcellrenderertext.c:282 gtk/gtktexttag.c:212 +#: gtk/gtkcellrenderertext.c:283 gtk/gtktexttag.c:205 msgid "Background color as a string" msgstr "Háttérszín karakterláncként" -#: gtk/gtkcellrenderertext.c:295 +#: gtk/gtkcellrenderertext.c:294 msgid "Background color as RGBA" msgstr "Háttérszín neve RGBA-ként" -#: gtk/gtkcellrenderertext.c:296 gtk/gtktexttag.c:227 +#: gtk/gtkcellrenderertext.c:295 gtk/gtktexttag.c:218 msgid "Background color as a GdkRGBA" msgstr "Háttérszín GdkRGBA-ként" -#: gtk/gtkcellrenderertext.c:301 gtk/gtktexttag.c:242 +#: gtk/gtkcellrenderertext.c:300 gtk/gtktexttag.c:233 msgid "Foreground color name" msgstr "Előtérszín neve" -#: gtk/gtkcellrenderertext.c:302 gtk/gtktexttag.c:243 +#: gtk/gtkcellrenderertext.c:301 gtk/gtktexttag.c:234 msgid "Foreground color as a string" msgstr "Előtérszín karakterláncként" -#: gtk/gtkcellrenderertext.c:315 +#: gtk/gtkcellrenderertext.c:312 msgid "Foreground color as RGBA" msgstr "Előtérszín RGBA-ként" -#: gtk/gtkcellrenderertext.c:316 gtk/gtktexttag.c:258 +#: gtk/gtkcellrenderertext.c:313 gtk/gtktexttag.c:247 msgid "Foreground color as a GdkRGBA" msgstr "Előtérszín GdkRGBA-ként" -#: gtk/gtkcellrenderertext.c:323 gtk/gtkentry.c:789 gtk/gtktexttag.c:274 -#: gtk/gtktextview.c:816 +#: gtk/gtkcellrenderertext.c:320 gtk/gtkentry.c:850 gtk/gtktexttag.c:263 +#: gtk/gtktextview.c:758 msgid "Editable" msgstr "Szerkeszthető" -#: gtk/gtkcellrenderertext.c:324 gtk/gtktexttag.c:275 gtk/gtktextview.c:817 +#: gtk/gtkcellrenderertext.c:321 gtk/gtktexttag.c:264 gtk/gtktextview.c:759 msgid "Whether the text can be modified by the user" msgstr "A szöveg szerkeszthető-e a felhasználó által" -#: gtk/gtkcellrenderertext.c:330 gtk/gtkcellrenderertext.c:337 -#: gtk/gtkfontchooser.c:64 gtk/gtktexttag.c:290 gtk/gtktexttag.c:298 +#: gtk/gtkcellrenderertext.c:327 gtk/gtkcellrenderertext.c:334 +#: gtk/gtkfontchooser.c:64 gtk/gtktexttag.c:279 gtk/gtktexttag.c:287 msgid "Font" msgstr "Betűkészlet" -#: gtk/gtkcellrenderertext.c:331 gtk/gtkfontchooser.c:65 gtk/gtktexttag.c:291 +#: gtk/gtkcellrenderertext.c:328 gtk/gtkfontchooser.c:65 gtk/gtktexttag.c:280 msgid "Font description as a string, e.g. “Sans Italic 12”" msgstr "A betűkészlet leírása, karakterláncként, például: „Sans Italic 12”" -#: gtk/gtkcellrenderertext.c:338 gtk/gtkfontchooser.c:78 gtk/gtktexttag.c:299 +#: gtk/gtkcellrenderertext.c:335 gtk/gtkfontchooser.c:78 gtk/gtktexttag.c:288 msgid "Font description as a PangoFontDescription struct" msgstr "Betűkészlet leírása PangoFontDescription struktúraként" -#: gtk/gtkcellrenderertext.c:344 gtk/gtktexttag.c:306 +#: gtk/gtkcellrenderertext.c:341 gtk/gtktexttag.c:295 msgid "Font family" msgstr "Betűkészlet-család" -#: gtk/gtkcellrenderertext.c:345 gtk/gtktexttag.c:307 +#: gtk/gtkcellrenderertext.c:342 gtk/gtktexttag.c:296 msgid "Name of the font family, e.g. Sans, Helvetica, Times, Monospace" msgstr "" "A betűkészlet-család megnevezése, például Sans, Helvetica, Times, Monospace" -#: gtk/gtkcellrenderertext.c:351 gtk/gtkcellrenderertext.c:352 -#: gtk/gtktexttag.c:314 +#: gtk/gtkcellrenderertext.c:348 gtk/gtkcellrenderertext.c:349 +#: gtk/gtktexttag.c:303 msgid "Font style" msgstr "Betűstílus" -#: gtk/gtkcellrenderertext.c:359 gtk/gtkcellrenderertext.c:360 -#: gtk/gtktexttag.c:323 +#: gtk/gtkcellrenderertext.c:356 gtk/gtkcellrenderertext.c:357 +#: gtk/gtktexttag.c:312 msgid "Font variant" msgstr "Betűváltozat" -#: gtk/gtkcellrenderertext.c:367 gtk/gtkcellrenderertext.c:368 -#: gtk/gtktexttag.c:332 +#: gtk/gtkcellrenderertext.c:364 gtk/gtkcellrenderertext.c:365 +#: gtk/gtktexttag.c:321 msgid "Font weight" msgstr "Betűvastagság" -#: gtk/gtkcellrenderertext.c:375 gtk/gtkcellrenderertext.c:376 -#: gtk/gtktexttag.c:343 +#: gtk/gtkcellrenderertext.c:372 gtk/gtkcellrenderertext.c:373 +#: gtk/gtktexttag.c:332 msgid "Font stretch" msgstr "Betűnyújtás" -#: gtk/gtkcellrenderertext.c:383 gtk/gtkcellrenderertext.c:384 -#: gtk/gtktexttag.c:352 +#: gtk/gtkcellrenderertext.c:380 gtk/gtkcellrenderertext.c:381 +#: gtk/gtktexttag.c:341 msgid "Font size" msgstr "Betűméret" -#: gtk/gtkcellrenderertext.c:391 gtk/gtktexttag.c:372 +#: gtk/gtkcellrenderertext.c:388 gtk/gtktexttag.c:361 msgid "Font points" msgstr "Betűpontok" -#: gtk/gtkcellrenderertext.c:392 gtk/gtktexttag.c:373 +#: gtk/gtkcellrenderertext.c:389 gtk/gtktexttag.c:362 msgid "Font size in points" msgstr "Betűméret pontokban" -#: gtk/gtkcellrenderertext.c:399 gtk/gtktexttag.c:362 +#: gtk/gtkcellrenderertext.c:396 gtk/gtktexttag.c:351 msgid "Font scale" msgstr "Betűkészlet méretezése" -#: gtk/gtkcellrenderertext.c:400 +#: gtk/gtkcellrenderertext.c:397 msgid "Font scaling factor" msgstr "Betű méretezésének együtthatója" -#: gtk/gtkcellrenderertext.c:407 gtk/gtktexttag.c:441 +#: gtk/gtkcellrenderertext.c:404 gtk/gtktexttag.c:430 msgid "Rise" msgstr "Elhelyezés" -#: gtk/gtkcellrenderertext.c:408 +#: gtk/gtkcellrenderertext.c:405 msgid "" "Offset of text above the baseline (below the baseline if rise is negative)" msgstr "" "Szöveg eltolása az alapvonal fölé (ha az eltolás negatív, az alapvonal alá)" -#: gtk/gtkcellrenderertext.c:416 gtk/gtktexttag.c:481 +#: gtk/gtkcellrenderertext.c:413 gtk/gtktexttag.c:470 msgid "Strikethrough" msgstr "Áthúzott" -#: gtk/gtkcellrenderertext.c:417 gtk/gtktexttag.c:482 +#: gtk/gtkcellrenderertext.c:414 gtk/gtktexttag.c:471 msgid "Whether to strike through the text" msgstr "Áthúzza-e a szöveget" -#: gtk/gtkcellrenderertext.c:423 gtk/gtktexttag.c:489 +#: gtk/gtkcellrenderertext.c:420 gtk/gtktexttag.c:478 msgid "Underline" msgstr "Aláhúzott" -#: gtk/gtkcellrenderertext.c:424 gtk/gtktexttag.c:490 +#: gtk/gtkcellrenderertext.c:421 gtk/gtktexttag.c:479 msgid "Style of underline for this text" msgstr "Ezen szöveg aláhúzásának stílusa" -#: gtk/gtkcellrenderertext.c:431 gtk/gtktexttag.c:401 +#: gtk/gtkcellrenderertext.c:428 gtk/gtkfontchooser.c:148 gtk/gtktexttag.c:390 msgid "Language" msgstr "Nyelv" -#: gtk/gtkcellrenderertext.c:432 +#: gtk/gtkcellrenderertext.c:429 msgid "" "The language this text is in, as an ISO code. Pango can use this as a hint " "when rendering the text. If you don’t understand this parameter, you " @@ -1491,11 +1520,11 @@ msgstr "" "szöveg megjelenítéséhez. Ha nem érti, mi ez a paraméter, akkor valószínűleg " "nincs is rá szükség" -#: gtk/gtkcellrenderertext.c:450 gtk/gtklabel.c:913 gtk/gtkprogressbar.c:258 +#: gtk/gtkcellrenderertext.c:445 gtk/gtklabel.c:906 gtk/gtkprogressbar.c:252 msgid "Ellipsize" msgstr "Kihagyások" -#: gtk/gtkcellrenderertext.c:451 +#: gtk/gtkcellrenderertext.c:446 msgid "" "The preferred place to ellipsize the string, if the cell renderer does not " "have enough room to display the entire string" @@ -1503,28 +1532,28 @@ msgstr "" "A karakterlánc kihagyásainak preferált helye, ha a cellamegjelenítőnek nincs " "elég helye a karakterlánc teljes megjelenítésére" -#: gtk/gtkcellrenderertext.c:469 gtk/gtkfilechooserbutton.c:479 -#: gtk/gtklabel.c:933 +#: gtk/gtkcellrenderertext.c:462 gtk/gtkfilechooserbutton.c:449 +#: gtk/gtklabel.c:924 msgid "Width In Characters" msgstr "Szélesség karakterekben" -#: gtk/gtkcellrenderertext.c:470 gtk/gtklabel.c:934 +#: gtk/gtkcellrenderertext.c:463 gtk/gtklabel.c:925 msgid "The desired width of the label, in characters" msgstr "A címke kívánt szélessége karakterekben megadva" -#: gtk/gtkcellrenderertext.c:491 gtk/gtklabel.c:971 +#: gtk/gtkcellrenderertext.c:482 gtk/gtklabel.c:958 msgid "Maximum Width In Characters" msgstr "Maximális szélesség karakterben" -#: gtk/gtkcellrenderertext.c:492 +#: gtk/gtkcellrenderertext.c:483 msgid "The maximum width of the cell, in characters" msgstr "A cella maximális szélessége, karakterekben megadva" -#: gtk/gtkcellrenderertext.c:508 gtk/gtktexttag.c:534 +#: gtk/gtkcellrenderertext.c:497 gtk/gtktexttag.c:519 msgid "Wrap mode" msgstr "Tördelés módja" -#: gtk/gtkcellrenderertext.c:509 +#: gtk/gtkcellrenderertext.c:498 msgid "" "How to break the string into multiple lines, if the cell renderer does not " "have enough room to display the entire string" @@ -1532,415 +1561,415 @@ msgstr "" "A karakterlánc több sorba törésének módja, ha a cellamegjelenítőnek nincs " "elég helye a karakterlánc teljes megjelenítésére" -#: gtk/gtkcellrenderertext.c:527 gtk/gtkcombobox.c:674 +#: gtk/gtkcellrenderertext.c:514 gtk/gtkcombobox.c:653 msgid "Wrap width" msgstr "Tördelés szélessége" -#: gtk/gtkcellrenderertext.c:528 +#: gtk/gtkcellrenderertext.c:515 msgid "The width at which the text is wrapped" msgstr "A szélesség, melynél a szöveg el lesz törve" -#: gtk/gtkcellrenderertext.c:546 gtk/gtktreeviewcolumn.c:343 +#: gtk/gtkcellrenderertext.c:531 gtk/gtktreeviewcolumn.c:352 msgid "Alignment" msgstr "Igazítás" -#: gtk/gtkcellrenderertext.c:547 +#: gtk/gtkcellrenderertext.c:532 msgid "How to align the lines" msgstr "A sorok igazításának módja" -#: gtk/gtkcellrenderertext.c:562 gtk/gtkentry.c:1002 +#: gtk/gtkcellrenderertext.c:545 gtk/gtkentry.c:1043 msgid "Placeholder text" msgstr "Helykitöltő szöveg" -#: gtk/gtkcellrenderertext.c:563 +#: gtk/gtkcellrenderertext.c:546 msgid "Text rendered when an editable cell is empty" msgstr "Üres szerkeszthető cellákban megjelenített szöveg" -#: gtk/gtkcellrenderertext.c:572 gtk/gtktexttag.c:670 +#: gtk/gtkcellrenderertext.c:555 gtk/gtktexttag.c:641 msgid "Background set" msgstr "Háttér beállítása" -#: gtk/gtkcellrenderertext.c:573 gtk/gtktexttag.c:671 +#: gtk/gtkcellrenderertext.c:556 gtk/gtktexttag.c:642 msgid "Whether this tag affects the background color" msgstr "Azt jelzi, hogy ez a címke befolyásolja-e a háttérszínt" -#: gtk/gtkcellrenderertext.c:576 gtk/gtktexttag.c:678 +#: gtk/gtkcellrenderertext.c:559 gtk/gtktexttag.c:649 msgid "Foreground set" msgstr "Előtér beállítása" -#: gtk/gtkcellrenderertext.c:577 gtk/gtktexttag.c:679 +#: gtk/gtkcellrenderertext.c:560 gtk/gtktexttag.c:650 msgid "Whether this tag affects the foreground color" msgstr "Azt jelzi, hogy ez a címke befolyásolja-e az előtérszínt" -#: gtk/gtkcellrenderertext.c:580 gtk/gtktexttag.c:682 +#: gtk/gtkcellrenderertext.c:563 gtk/gtktexttag.c:653 msgid "Editability set" msgstr "Szerkeszthetőség beállítása" -#: gtk/gtkcellrenderertext.c:581 gtk/gtktexttag.c:683 +#: gtk/gtkcellrenderertext.c:564 gtk/gtktexttag.c:654 msgid "Whether this tag affects text editability" msgstr "Azt jelzi, hogy ez a címke befolyásolja-e a szöveg szerkeszthetőségét" -#: gtk/gtkcellrenderertext.c:584 gtk/gtktexttag.c:686 +#: gtk/gtkcellrenderertext.c:567 gtk/gtktexttag.c:657 msgid "Font family set" msgstr "Betűcsalád beállítása" -#: gtk/gtkcellrenderertext.c:585 gtk/gtktexttag.c:687 +#: gtk/gtkcellrenderertext.c:568 gtk/gtktexttag.c:658 msgid "Whether this tag affects the font family" msgstr "Ez az elem befolyásolja-e a betűcsaládot" -#: gtk/gtkcellrenderertext.c:588 gtk/gtktexttag.c:690 +#: gtk/gtkcellrenderertext.c:571 gtk/gtktexttag.c:661 msgid "Font style set" msgstr "Betűstílus beállítása" -#: gtk/gtkcellrenderertext.c:589 gtk/gtktexttag.c:691 +#: gtk/gtkcellrenderertext.c:572 gtk/gtktexttag.c:662 msgid "Whether this tag affects the font style" msgstr "Ez az elem befolyásolja-e a betű stílusát" -#: gtk/gtkcellrenderertext.c:592 gtk/gtktexttag.c:694 +#: gtk/gtkcellrenderertext.c:575 gtk/gtktexttag.c:665 msgid "Font variant set" msgstr "Betűváltozat beállítása" -#: gtk/gtkcellrenderertext.c:593 gtk/gtktexttag.c:695 +#: gtk/gtkcellrenderertext.c:576 gtk/gtktexttag.c:666 msgid "Whether this tag affects the font variant" msgstr "Ez az elem befolyásolja-e a betű változatát" -#: gtk/gtkcellrenderertext.c:596 gtk/gtktexttag.c:698 +#: gtk/gtkcellrenderertext.c:579 gtk/gtktexttag.c:669 msgid "Font weight set" msgstr "Betű vastagságának beállítása" -#: gtk/gtkcellrenderertext.c:597 gtk/gtktexttag.c:699 +#: gtk/gtkcellrenderertext.c:580 gtk/gtktexttag.c:670 msgid "Whether this tag affects the font weight" msgstr "Ez az elem befolyásolja-e a betű vastagságát" -#: gtk/gtkcellrenderertext.c:600 gtk/gtktexttag.c:702 +#: gtk/gtkcellrenderertext.c:583 gtk/gtktexttag.c:673 msgid "Font stretch set" msgstr "Betűszélesség beállítása" -#: gtk/gtkcellrenderertext.c:601 gtk/gtktexttag.c:703 +#: gtk/gtkcellrenderertext.c:584 gtk/gtktexttag.c:674 msgid "Whether this tag affects the font stretch" msgstr "Ez az elem befolyásolja-e a betű szélességét" -#: gtk/gtkcellrenderertext.c:604 gtk/gtktexttag.c:706 +#: gtk/gtkcellrenderertext.c:587 gtk/gtktexttag.c:677 msgid "Font size set" msgstr "Betűméret beállítása" -#: gtk/gtkcellrenderertext.c:605 gtk/gtktexttag.c:707 +#: gtk/gtkcellrenderertext.c:588 gtk/gtktexttag.c:678 msgid "Whether this tag affects the font size" msgstr "Ez az elem befolyásolja-e a betű méretét" -#: gtk/gtkcellrenderertext.c:608 gtk/gtktexttag.c:710 +#: gtk/gtkcellrenderertext.c:591 gtk/gtktexttag.c:681 msgid "Font scale set" msgstr "Betű méretezése" -#: gtk/gtkcellrenderertext.c:609 gtk/gtktexttag.c:711 +#: gtk/gtkcellrenderertext.c:592 gtk/gtktexttag.c:682 msgid "Whether this tag scales the font size by a factor" msgstr "Ez az elem átméretezi-e a betűt az adott együtthatóval" -#: gtk/gtkcellrenderertext.c:612 gtk/gtktexttag.c:730 +#: gtk/gtkcellrenderertext.c:595 gtk/gtktexttag.c:701 msgid "Rise set" msgstr "Elhelyezés beállítása" -#: gtk/gtkcellrenderertext.c:613 gtk/gtktexttag.c:731 +#: gtk/gtkcellrenderertext.c:596 gtk/gtktexttag.c:702 msgid "Whether this tag affects the rise" msgstr "Ez az elem befolyásolja-e a betű elhelyezését" -#: gtk/gtkcellrenderertext.c:616 gtk/gtktexttag.c:746 +#: gtk/gtkcellrenderertext.c:599 gtk/gtktexttag.c:717 msgid "Strikethrough set" msgstr "Áthúzás beállítása" -#: gtk/gtkcellrenderertext.c:617 gtk/gtktexttag.c:747 +#: gtk/gtkcellrenderertext.c:600 gtk/gtktexttag.c:718 msgid "Whether this tag affects strikethrough" msgstr "Ez az elem befolyásolja-e a betű áthúzását" -#: gtk/gtkcellrenderertext.c:620 gtk/gtktexttag.c:754 +#: gtk/gtkcellrenderertext.c:603 gtk/gtktexttag.c:725 msgid "Underline set" msgstr "Aláhúzás beállítása" -#: gtk/gtkcellrenderertext.c:621 gtk/gtktexttag.c:755 +#: gtk/gtkcellrenderertext.c:604 gtk/gtktexttag.c:726 msgid "Whether this tag affects underlining" msgstr "Ez az elem befolyásolja-e az aláhúzást" -#: gtk/gtkcellrenderertext.c:624 gtk/gtktexttag.c:718 +#: gtk/gtkcellrenderertext.c:607 gtk/gtktexttag.c:689 msgid "Language set" msgstr "Nyelv beállítása" -#: gtk/gtkcellrenderertext.c:625 gtk/gtktexttag.c:719 +#: gtk/gtkcellrenderertext.c:608 gtk/gtktexttag.c:690 msgid "Whether this tag affects the language the text is rendered as" msgstr "" "Azt jelzi, hogy ez a címke befolyásolja-e a nyelvet, amelyen a szöveg " "megjelenítésre kerül" -#: gtk/gtkcellrenderertext.c:628 +#: gtk/gtkcellrenderertext.c:611 msgid "Ellipsize set" msgstr "Kihagyások beállítása" -#: gtk/gtkcellrenderertext.c:629 +#: gtk/gtkcellrenderertext.c:612 msgid "Whether this tag affects the ellipsize mode" msgstr "Azt jelzi, hogy ez a címke befolyásolja-e a kihagyási módot" -#: gtk/gtkcellrenderertext.c:632 +#: gtk/gtkcellrenderertext.c:615 msgid "Align set" msgstr "Igazítás beállítása" -#: gtk/gtkcellrenderertext.c:633 +#: gtk/gtkcellrenderertext.c:616 msgid "Whether this tag affects the alignment mode" msgstr "Jelzi, hogy ez a címke befolyásolja-e az igazítási módot" -#: gtk/gtkcellrenderertoggle.c:135 +#: gtk/gtkcellrenderertoggle.c:139 msgid "Toggle state" msgstr "Átkapcsolási állapot" -#: gtk/gtkcellrenderertoggle.c:136 +#: gtk/gtkcellrenderertoggle.c:140 msgid "The toggle state of the button" msgstr "A gomb átkapcsolási állapota" -#: gtk/gtkcellrenderertoggle.c:143 +#: gtk/gtkcellrenderertoggle.c:147 msgid "Inconsistent state" msgstr "Inkonzisztens állapot" -#: gtk/gtkcellrenderertoggle.c:144 +#: gtk/gtkcellrenderertoggle.c:148 msgid "The inconsistent state of the button" msgstr "A gomb inkonzisztens állapota" -#: gtk/gtkcellrenderertoggle.c:151 gtk/gtklistbox.c:3442 +#: gtk/gtkcellrenderertoggle.c:155 gtk/gtklistbox.c:3413 msgid "Activatable" msgstr "Aktiválható" -#: gtk/gtkcellrenderertoggle.c:152 +#: gtk/gtkcellrenderertoggle.c:156 msgid "The toggle button can be activated" msgstr "Az átkapcsológomb aktiválható" -#: gtk/gtkcellrenderertoggle.c:159 +#: gtk/gtkcellrenderertoggle.c:163 msgid "Radio state" msgstr "Választógomb állapot" -#: gtk/gtkcellrenderertoggle.c:160 +#: gtk/gtkcellrenderertoggle.c:164 msgid "Draw the toggle button as a radio button" msgstr "Az átkapcsológomb választógombként megjelenítése" -#: gtk/gtkcellview.c:184 +#: gtk/gtkcellview.c:182 msgid "CellView model" msgstr "CellView modell" -#: gtk/gtkcellview.c:185 +#: gtk/gtkcellview.c:183 msgid "The model for cell view" msgstr "A cellanézet modellje" -#: gtk/gtkcellview.c:203 gtk/gtkentrycompletion.c:468 gtk/gtkiconview.c:635 -#: gtk/gtktreemenu.c:293 gtk/gtktreeviewcolumn.c:398 +#: gtk/gtkcellview.c:201 gtk/gtkentrycompletion.c:436 gtk/gtkiconview.c:604 +#: gtk/gtktreemenu.c:280 gtk/gtktreeviewcolumn.c:403 msgid "Cell Area" msgstr "Cellaterület" -#: gtk/gtkcellview.c:204 gtk/gtkentrycompletion.c:469 gtk/gtkiconview.c:636 -#: gtk/gtktreemenu.c:294 gtk/gtktreeviewcolumn.c:399 +#: gtk/gtkcellview.c:202 gtk/gtkentrycompletion.c:437 gtk/gtkiconview.c:605 +#: gtk/gtktreemenu.c:281 gtk/gtktreeviewcolumn.c:404 msgid "The GtkCellArea used to layout cells" msgstr "A cellák elrendezéséhez használt GtkCellArea" -#: gtk/gtkcellview.c:227 +#: gtk/gtkcellview.c:225 msgid "Cell Area Context" msgstr "Cellaterület-környezet" -#: gtk/gtkcellview.c:228 +#: gtk/gtkcellview.c:226 msgid "The GtkCellAreaContext used to compute the geometry of the cell view" msgstr "A cellanézet geometriájának kiszámításához használt GtkCellAreaContext" -#: gtk/gtkcellview.c:245 +#: gtk/gtkcellview.c:243 msgid "Draw Sensitive" msgstr "Rajzolás érzékenyre" -#: gtk/gtkcellview.c:246 +#: gtk/gtkcellview.c:244 msgid "Whether to force cells to be drawn in a sensitive state" msgstr "A cellák érzékeny állapotba rajzolásának kikényszerítése" -#: gtk/gtkcellview.c:264 +#: gtk/gtkcellview.c:262 msgid "Fit Model" msgstr "Illesztés modellhez" -#: gtk/gtkcellview.c:265 +#: gtk/gtkcellview.c:263 msgid "Whether to request enough space for every row in the model" msgstr "Kell-e elegendő helyet kérni a modell minden sorának" -#: gtk/gtkcheckbutton.c:313 +#: gtk/gtkcheckbutton.c:318 msgid "Draw Indicator" msgstr "Jelző rajzolása" -#: gtk/gtkcheckbutton.c:314 +#: gtk/gtkcheckbutton.c:319 msgid "If the indicator part of the button is displayed" msgstr "A gomb jelző része ki legyen-e rajzolva" -#: gtk/gtkcheckbutton.c:320 gtk/gtkcheckmenuitem.c:190 +#: gtk/gtkcheckbutton.c:325 gtk/gtkcheckmenuitem.c:185 msgid "Inconsistent" msgstr "Inkonzisztens" -#: gtk/gtkcheckbutton.c:321 +#: gtk/gtkcheckbutton.c:326 msgid "If the check button is in an “in between” state" msgstr "Az átkapcsoló gomb „köztes” állapotban legyen-e" -#: gtk/gtkcheckmenuitem.c:183 +#: gtk/gtkcheckmenuitem.c:178 msgid "Whether the menu item is checked" msgstr "Azt jelzi, hogy a menüelem meg van-e jelölve" -#: gtk/gtkcheckmenuitem.c:191 +#: gtk/gtkcheckmenuitem.c:186 msgid "Whether to display an “inconsistent” state" msgstr "Kerüljön-e megjelenítésre „inkonzisztens” állapot" -#: gtk/gtkcheckmenuitem.c:198 +#: gtk/gtkcheckmenuitem.c:193 msgid "Draw as radio menu item" msgstr "Kirajzolás választómenü-elemként" -#: gtk/gtkcheckmenuitem.c:199 +#: gtk/gtkcheckmenuitem.c:194 msgid "Whether the menu item looks like a radio menu item" msgstr "A menüelem hasonlítson-e a választómenü-elemekre" -#: gtk/gtkcolorbutton.c:211 gtk/gtkcolorchooser.c:87 +#: gtk/gtkcolorbutton.c:203 gtk/gtkcolorchooser.c:81 msgid "Use alpha" msgstr "Alfa használata" -#: gtk/gtkcolorbutton.c:212 +#: gtk/gtkcolorbutton.c:204 msgid "Whether to give the color an alpha value" msgstr "Kapjon-e a szín alfa-értéket" -#: gtk/gtkcolorbutton.c:226 gtk/gtkfilechooserbutton.c:465 -#: gtk/gtkfontbutton.c:507 gtk/gtkheaderbar.c:1883 gtk/gtkprintjob.c:132 -#: gtk/gtkshortcutsgroup.c:305 gtk/gtkshortcutssection.c:368 -#: gtk/gtkshortcutsshortcut.c:610 gtk/gtkstack.c:390 -#: gtk/gtktreeviewcolumn.c:315 +#: gtk/gtkcolorbutton.c:216 gtk/gtkfilechooserbutton.c:437 +#: gtk/gtkfontbutton.c:528 gtk/gtkheaderbar.c:1850 gtk/gtkprintjob.c:132 +#: gtk/gtkshortcutsgroup.c:306 gtk/gtkshortcutssection.c:365 +#: gtk/gtkshortcutsshortcut.c:610 gtk/gtkstack.c:385 +#: gtk/gtktreeviewcolumn.c:324 msgid "Title" msgstr "Cím" -#: gtk/gtkcolorbutton.c:227 +#: gtk/gtkcolorbutton.c:217 msgid "The title of the color selection dialog" msgstr "A színválasztó ablak címkéje" -#: gtk/gtkcolorbutton.c:241 +#: gtk/gtkcolorbutton.c:229 msgid "Current RGBA Color" msgstr "Jelenlegi RGBA szín" -#: gtk/gtkcolorbutton.c:242 +#: gtk/gtkcolorbutton.c:230 msgid "The selected RGBA color" msgstr "A kiválasztott RGBA szín" -#: gtk/gtkcolorbutton.c:283 +#: gtk/gtkcolorbutton.c:267 msgid "Show Editor" msgstr "Szerkesztő megjelenítése" -#: gtk/gtkcolorbutton.c:284 +#: gtk/gtkcolorbutton.c:268 msgid "Whether to show the color editor right away" msgstr "Megjelenjen-e azonnal a színszerkesztő" -#: gtk/gtkcolorchooser.c:67 +#: gtk/gtkcolorchooser.c:63 msgid "Color" msgstr "Szín" -#: gtk/gtkcolorchooser.c:68 +#: gtk/gtkcolorchooser.c:64 msgid "Current color, as a GdkRGBA" msgstr "Aktuális szín GdkRGBA-ként" -#: gtk/gtkcolorchooser.c:88 +#: gtk/gtkcolorchooser.c:82 msgid "Whether alpha should be shown" msgstr "Az alfa megjelenjen-e" -#: gtk/gtkcolorchooserdialog.c:206 gtk/gtkcolorchooserwidget.c:697 +#: gtk/gtkcolorchooserdialog.c:204 gtk/gtkcolorchooserwidget.c:693 msgid "Show editor" msgstr "Szerkesztő megjelenítése" -#: gtk/gtkcolorscale.c:255 +#: gtk/gtkcolorscale.c:257 msgid "Scale type" msgstr "Méretező típusa" -#: gtk/gtkcolorswatch.c:574 +#: gtk/gtkcolorswatch.c:553 msgid "RGBA Color" msgstr "RGBA szín" -#: gtk/gtkcolorswatch.c:574 +#: gtk/gtkcolorswatch.c:553 msgid "Color as RGBA" msgstr "Szín RGBA-ként" -#: gtk/gtkcolorswatch.c:577 gtk/gtklabel.c:858 gtk/gtklistbox.c:3456 +#: gtk/gtkcolorswatch.c:556 gtk/gtklabel.c:853 gtk/gtklistbox.c:3425 msgid "Selectable" msgstr "Kijelölhető" -#: gtk/gtkcolorswatch.c:577 +#: gtk/gtkcolorswatch.c:556 msgid "Whether the swatch is selectable" msgstr "A mintagyűjtemény kijelölhető-e" -#: gtk/gtkcolorswatch.c:580 +#: gtk/gtkcolorswatch.c:559 msgid "Has Menu" msgstr "Van menüje" -#: gtk/gtkcolorswatch.c:580 +#: gtk/gtkcolorswatch.c:559 msgid "Whether the swatch should offer customization" msgstr "A mintagyűjtemény ajánljon-e fel személyre szabást" -#: gtk/gtkcombobox.c:657 +#: gtk/gtkcombobox.c:639 msgid "ComboBox model" msgstr "ComboBox modell" -#: gtk/gtkcombobox.c:658 +#: gtk/gtkcombobox.c:640 msgid "The model for the combo box" msgstr "A kombinált mező modellje" -#: gtk/gtkcombobox.c:675 +#: gtk/gtkcombobox.c:654 msgid "Wrap width for laying out the items in a grid" msgstr "Az elemek rácsra rendezésekor az áttördelés szélessége" -#: gtk/gtkcombobox.c:697 gtk/gtktreemenu.c:332 +#: gtk/gtkcombobox.c:672 gtk/gtktreemenu.c:312 msgid "Row span column" msgstr "Sorösszevonás oszlop" -#: gtk/gtkcombobox.c:698 gtk/gtktreemenu.c:333 +#: gtk/gtkcombobox.c:673 gtk/gtktreemenu.c:313 msgid "TreeModel column containing the row span values" msgstr "A sorösszevonási értékeket tartalmazó TreeModel oszlop" -#: gtk/gtkcombobox.c:719 gtk/gtktreemenu.c:353 +#: gtk/gtkcombobox.c:692 gtk/gtktreemenu.c:331 msgid "Column span column" msgstr "Oszlopösszevonás oszlop" -#: gtk/gtkcombobox.c:720 gtk/gtktreemenu.c:354 +#: gtk/gtkcombobox.c:693 gtk/gtktreemenu.c:332 msgid "TreeModel column containing the column span values" msgstr "Az oszlop-összevonási értékeket tartalmazó TreeModel oszlop" -#: gtk/gtkcombobox.c:741 +#: gtk/gtkcombobox.c:712 msgid "Active item" msgstr "Aktív elem" -#: gtk/gtkcombobox.c:742 +#: gtk/gtkcombobox.c:713 msgid "The item which is currently active" msgstr "A jelenleg aktív elem" -#: gtk/gtkcombobox.c:759 gtk/gtkentry.c:811 +#: gtk/gtkcombobox.c:728 gtk/gtkentry.c:872 msgid "Has Frame" msgstr "Van kerete" -#: gtk/gtkcombobox.c:760 +#: gtk/gtkcombobox.c:729 msgid "Whether the combo box draws a frame around the child" msgstr "A kombinált mező rajzol-e keretet a gyermek körül" -#: gtk/gtkcombobox.c:776 +#: gtk/gtkcombobox.c:743 msgid "Popup shown" msgstr "Felbukkanók megjelenítése" -#: gtk/gtkcombobox.c:777 +#: gtk/gtkcombobox.c:744 msgid "Whether the combo’s dropdown is shown" msgstr "A legördülő lista legördítője megjelenjen-e" -#: gtk/gtkcombobox.c:793 +#: gtk/gtkcombobox.c:758 msgid "Button Sensitivity" msgstr "Gomb érzékenysége" -#: gtk/gtkcombobox.c:794 +#: gtk/gtkcombobox.c:759 msgid "Whether the dropdown button is sensitive when the model is empty" msgstr "A legördülő gomb érzékeny-e ha a modell üres" -#: gtk/gtkcombobox.c:810 +#: gtk/gtkcombobox.c:773 msgid "Whether combo box has an entry" msgstr "A legördülő listához tartozik-e beviteli mező" -#: gtk/gtkcombobox.c:825 +#: gtk/gtkcombobox.c:786 msgid "Entry Text Column" msgstr "Beviteli szövegoszlop" -#: gtk/gtkcombobox.c:826 +#: gtk/gtkcombobox.c:787 msgid "" "The column in the combo box’s model to associate with strings from the entry " "if the combo was created with #GtkComboBox:has-entry = %TRUE" @@ -1949,11 +1978,11 @@ msgstr "" "társítandó oszlopa, ha a legördülő lista a #GtkComboBox:has-entry = %TRUE " "használatával jött létre" -#: gtk/gtkcombobox.c:843 +#: gtk/gtkcombobox.c:802 msgid "ID Column" msgstr "Azonosítóoszlop" -#: gtk/gtkcombobox.c:844 +#: gtk/gtkcombobox.c:803 msgid "" "The column in the combo box’s model that provides string IDs for the values " "in the model" @@ -1961,19 +1990,19 @@ msgstr "" "A legördülő lista modelljének oszlopa, amely szöveges azonosítókat biztosít " "a modell értékeihez" -#: gtk/gtkcombobox.c:859 +#: gtk/gtkcombobox.c:816 msgid "Active id" msgstr "Aktív azonosító" -#: gtk/gtkcombobox.c:860 +#: gtk/gtkcombobox.c:817 msgid "The value of the id column for the active row" msgstr "Az azonosító oszlop értéke az aktív sorhoz" -#: gtk/gtkcombobox.c:876 +#: gtk/gtkcombobox.c:831 msgid "Popup Fixed Width" msgstr "Rögzített szélességű felugró" -#: gtk/gtkcombobox.c:877 +#: gtk/gtkcombobox.c:832 msgid "" "Whether the popup’s width should be a fixed width matching the allocated " "width of the combo box" @@ -1981,169 +2010,160 @@ msgstr "" "A felugró szélessége rögzített legyen-e, a legördülő lista lefoglalt " "szélességének megfelelően" -#: gtk/gtkcssnode.c:624 +#: gtk/gtkcssnode.c:629 msgid "Style Classes" msgstr "Stílusosztályok" -#: gtk/gtkcssnode.c:624 +#: gtk/gtkcssnode.c:629 msgid "List of classes" msgstr "Osztályok listája" -#: gtk/gtkcssnode.c:629 gtk/gtkcssstyleproperty.c:203 +#: gtk/gtkcssnode.c:634 gtk/gtkcssstyleproperty.c:202 msgid "ID" msgstr "Azonosító" -#: gtk/gtkcssnode.c:629 +#: gtk/gtkcssnode.c:634 msgid "Unique ID" msgstr "Egyedi azonosító" -#: gtk/gtkcssnode.c:634 gtk/gtkprinter.c:121 gtk/gtkstack.c:383 -#: gtk/gtktextmark.c:136 -msgid "Name" -msgstr "Név" - -#: gtk/gtkcssnode.c:639 gtk/gtkswitch.c:546 -msgid "State" -msgstr "Állapot" - -#: gtk/gtkcssnode.c:639 +#: gtk/gtkcssnode.c:644 msgid "State flags" msgstr "Állapotjelzők" -#: gtk/gtkcssnode.c:645 gtk/gtknativedialog.c:242 gtk/gtktreeviewcolumn.c:245 -#: gtk/gtkwidget.c:1112 +#: gtk/gtkcssnode.c:650 gtk/gtknativedialog.c:236 gtk/gtktreeviewcolumn.c:254 +#: gtk/gtkwidget.c:971 msgid "Visible" msgstr "Látható" -#: gtk/gtkcssnode.c:645 +#: gtk/gtkcssnode.c:650 msgid "If other nodes can see this node" msgstr "Láthatják-e más csomópontok ezt a csomópontot" -#: gtk/gtkcssnode.c:650 +#: gtk/gtkcssnode.c:655 msgid "Widget type" msgstr "Felületi elem típusa" -#: gtk/gtkcssnode.c:650 +#: gtk/gtkcssnode.c:655 msgid "GType of the widget" msgstr "A felületi elem GType típusa" -#: gtk/gtkcssshorthandproperty.c:159 +#: gtk/gtkcssshorthandproperty.c:158 msgid "Subproperties" msgstr "Altulajdonságok" -#: gtk/gtkcssshorthandproperty.c:160 +#: gtk/gtkcssshorthandproperty.c:159 msgid "The list of subproperties" msgstr "Az altulajdonságok listája" -#: gtk/gtkcssstyleproperty.c:188 +#: gtk/gtkcssstyleproperty.c:187 msgid "Animated" msgstr "Animált" -#: gtk/gtkcssstyleproperty.c:189 +#: gtk/gtkcssstyleproperty.c:188 msgid "Set if the value can be animated" msgstr "Állítsa be, ha az érték animálható" -#: gtk/gtkcssstyleproperty.c:195 +#: gtk/gtkcssstyleproperty.c:194 msgid "Affects" msgstr "Befolyásolja" -#: gtk/gtkcssstyleproperty.c:196 +#: gtk/gtkcssstyleproperty.c:195 msgid "Set if the value affects the sizing of elements" msgstr "Állítsa be, ha az érték befolyásolja az elemek méretezését" -#: gtk/gtkcssstyleproperty.c:204 +#: gtk/gtkcssstyleproperty.c:203 msgid "The numeric id for quick access" msgstr "Numerikus azonosító gyors eléréshez" -#: gtk/gtkcssstyleproperty.c:210 +#: gtk/gtkcssstyleproperty.c:209 msgid "Inherit" msgstr "Öröklött" -#: gtk/gtkcssstyleproperty.c:211 +#: gtk/gtkcssstyleproperty.c:210 msgid "Set if the value is inherited by default" msgstr "Állítsa be, ha az érték alapértelmezésben öröklött" -#: gtk/gtkcssstyleproperty.c:217 +#: gtk/gtkcssstyleproperty.c:216 msgid "Initial value" msgstr "Kiindulási érték" -#: gtk/gtkcssstyleproperty.c:218 +#: gtk/gtkcssstyleproperty.c:217 msgid "The initial specified value used for this property" msgstr "A tulajdonság kiindulásiként megadott értéke" -#: gtk/gtkdrawingarea.c:277 +#: gtk/gtkdrawingarea.c:274 msgid "Content Width" msgstr "Tartalomszélesség" -#: gtk/gtkdrawingarea.c:278 +#: gtk/gtkdrawingarea.c:275 msgid "Desired width for displayed content" msgstr "A megjelenített tartalom kívánt szélessége" -#: gtk/gtkdrawingarea.c:291 +#: gtk/gtkdrawingarea.c:286 msgid "Content Height" msgstr "Tartalommagasság" -#: gtk/gtkdrawingarea.c:292 +#: gtk/gtkdrawingarea.c:287 msgid "Desired height for displayed content" msgstr "A megjelenített tartalom kívánt magassága" -#: gtk/gtkentrybuffer.c:351 +#: gtk/gtkentrybuffer.c:352 msgid "The contents of the buffer" msgstr "A puffer tartalma" -#: gtk/gtkentrybuffer.c:364 gtk/gtkentry.c:923 +#: gtk/gtkentrybuffer.c:363 gtk/gtkentry.c:974 msgid "Text length" msgstr "Szöveg hossza" -#: gtk/gtkentrybuffer.c:365 +#: gtk/gtkentrybuffer.c:364 msgid "Length of the text currently in the buffer" msgstr "A pufferben lévő szöveg hossza" -#: gtk/gtkentrybuffer.c:378 gtk/gtkentry.c:796 +#: gtk/gtkentrybuffer.c:375 gtk/gtkentry.c:857 msgid "Maximum length" msgstr "Maximális hossz" -#: gtk/gtkentrybuffer.c:379 gtk/gtkentry.c:797 +#: gtk/gtkentrybuffer.c:376 gtk/gtkentry.c:858 msgid "Maximum number of characters for this entry. Zero if no maximum" msgstr "" "A bejegyzésben felhasználható karakterek maximális száma. Ha nulla, akkor " "nincs maximum " -#: gtk/gtkentry.c:766 +#: gtk/gtkentry.c:827 msgid "Text Buffer" msgstr "Szöveges puffer" -#: gtk/gtkentry.c:767 +#: gtk/gtkentry.c:828 msgid "Text buffer object which actually stores entry text" msgstr "A beviteli mező szövegét ténylegesen tároló szöveges puffer" -#: gtk/gtkentry.c:773 gtk/gtklabel.c:880 +#: gtk/gtkentry.c:834 gtk/gtklabel.c:875 msgid "Cursor Position" msgstr "Kurzorpozíció" -#: gtk/gtkentry.c:774 gtk/gtklabel.c:881 +#: gtk/gtkentry.c:835 gtk/gtklabel.c:876 msgid "The current position of the insertion cursor in chars" msgstr "A beszúrási kurzor aktuális helye karakterekben megadva" -#: gtk/gtkentry.c:781 gtk/gtklabel.c:888 +#: gtk/gtkentry.c:842 gtk/gtklabel.c:883 msgid "Selection Bound" msgstr "Kijelölés mérete" -#: gtk/gtkentry.c:782 gtk/gtklabel.c:889 +#: gtk/gtkentry.c:843 gtk/gtklabel.c:884 msgid "" "The position of the opposite end of the selection from the cursor in chars" msgstr "" "A kurzortól a kijelölés túlsó végének a távolsága karakterekben megadva" -#: gtk/gtkentry.c:790 +#: gtk/gtkentry.c:851 msgid "Whether the entry contents can be edited" msgstr "Szerkeszthető-e a bejegyzés tartalma" -#: gtk/gtkentry.c:804 +#: gtk/gtkentry.c:865 msgid "Visibility" msgstr "Láthatóság" -#: gtk/gtkentry.c:805 +#: gtk/gtkentry.c:866 msgid "" "FALSE displays the “invisible char” instead of the actual text (password " "mode)" @@ -2151,23 +2171,23 @@ msgstr "" "HAMIS hatására a „Láthatatlan karakter” jelenik meg a tényleges szöveg " "helyett (jelszó módban)" -#: gtk/gtkentry.c:812 +#: gtk/gtkentry.c:873 msgid "FALSE removes outside bevel from entry" msgstr "HAMIS hatására törlésre kerül a bejegyzés külső élkidolgozása" -#: gtk/gtkentry.c:818 +#: gtk/gtkentry.c:879 msgid "Invisible character" msgstr "Láthatatlan karakter" -#: gtk/gtkentry.c:819 +#: gtk/gtkentry.c:880 msgid "The character to use when masking entry contents (in “password mode”)" msgstr "A bevitel elrejtésére használt karakter („jelszó módban”)" -#: gtk/gtkentry.c:825 +#: gtk/gtkentry.c:886 msgid "Activates default" msgstr "Alapértelmezés aktiválása" -#: gtk/gtkentry.c:826 +#: gtk/gtkentry.c:887 msgid "" "Whether to activate the default widget (such as the default button in a " "dialog) when Enter is pressed" @@ -2175,39 +2195,39 @@ msgstr "" "Az alapértelmezett felületi elem (például egy párbeszédablak alapértelmezett " "gombjának) aktiválása az Enter lenyomására" -#: gtk/gtkentry.c:832 gtk/gtkspinbutton.c:405 +#: gtk/gtkentry.c:893 gtk/gtkspinbutton.c:389 msgid "Width in chars" msgstr "Szélesség karakterekben" -#: gtk/gtkentry.c:833 gtk/gtkspinbutton.c:406 +#: gtk/gtkentry.c:894 gtk/gtkspinbutton.c:390 msgid "Number of characters to leave space for in the entry" msgstr "Hely kihagyása a bejegyzésben ennyi karakternek" -#: gtk/gtkentry.c:849 gtk/gtkspinbutton.c:414 +#: gtk/gtkentry.c:908 gtk/gtkspinbutton.c:397 msgid "Maximum width in characters" msgstr "Maximális szélesség karakterekben" -#: gtk/gtkentry.c:850 gtk/gtkspinbutton.c:415 +#: gtk/gtkentry.c:909 gtk/gtkspinbutton.c:398 msgid "The desired maximum width of the entry, in characters" msgstr "A bejegyzés megkívánt maximális szélessége, karakterekben megadva" -#: gtk/gtkentry.c:857 +#: gtk/gtkentry.c:916 msgid "Scroll offset" msgstr "Görgetési eltolás" -#: gtk/gtkentry.c:858 +#: gtk/gtkentry.c:917 msgid "Number of pixels of the entry scrolled off the screen to the left" msgstr "A bejegyzésnek balra, a képernyőről legörgetett képpontjainak száma" -#: gtk/gtkentry.c:866 gtk/gtkspinbutton.c:424 +#: gtk/gtkentry.c:925 gtk/gtkspinbutton.c:406 msgid "The contents of the entry" msgstr "A bejegyzés tartalma" -#: gtk/gtkentry.c:880 gtk/gtklabel.c:801 +#: gtk/gtkentry.c:937 gtk/gtklabel.c:800 msgid "X align" msgstr "X-igazítás" -#: gtk/gtkentry.c:881 gtk/gtklabel.c:802 +#: gtk/gtkentry.c:938 gtk/gtklabel.c:801 msgid "" "The horizontal alignment, from 0 (left) to 1 (right). Reversed for RTL " "layouts." @@ -2215,57 +2235,57 @@ msgstr "" "A vízszintes igazítás, 0 (bal) és 1 (jobb) közötti számként megadva. RTL " "elrendezéseknél fordított az érték." -#: gtk/gtkentry.c:895 +#: gtk/gtkentry.c:950 msgid "Truncate multiline" msgstr "Több sor csonkítása" -#: gtk/gtkentry.c:896 +#: gtk/gtkentry.c:951 msgid "Whether to truncate multiline pastes to one line." msgstr "Több beillesztett sor csonkítva legyen-e az első sorra" -#: gtk/gtkentry.c:909 gtk/gtktextview.c:956 +#: gtk/gtkentry.c:962 gtk/gtktextview.c:894 msgid "Overwrite mode" msgstr "Felülírás mód" -#: gtk/gtkentry.c:910 +#: gtk/gtkentry.c:963 msgid "Whether new text overwrites existing text" msgstr "A beírt szöveg felülírja-e a meglévő tartalmat" -#: gtk/gtkentry.c:924 +#: gtk/gtkentry.c:975 msgid "Length of the text currently in the entry" msgstr "A beviteli mezőben lévő szöveg aktuális hossza" -#: gtk/gtkentry.c:938 +#: gtk/gtkentry.c:987 msgid "Invisible character set" msgstr "Láthatatlan karakter beállítva" -#: gtk/gtkentry.c:939 +#: gtk/gtkentry.c:988 msgid "Whether the invisible character has been set" msgstr "A láthatatlan karakter tulajdonság be van-e állítva" -#: gtk/gtkentry.c:956 +#: gtk/gtkentry.c:1003 msgid "Caps Lock warning" msgstr "Caps Lock figyelmeztetés" -#: gtk/gtkentry.c:957 +#: gtk/gtkentry.c:1004 msgid "Whether password entries will show a warning when Caps Lock is on" msgstr "" "A jelszóbeviteli mezők megjelenítsenek-e figyelmeztetést ha a Caps Lock be " "van kapcsolva" -#: gtk/gtkentry.c:970 +#: gtk/gtkentry.c:1015 msgid "Progress Fraction" msgstr "Előrehaladás törtrésze" -#: gtk/gtkentry.c:971 +#: gtk/gtkentry.c:1016 msgid "The current fraction of the task that’s been completed" msgstr "A teljes feladat elkészült része törtként" -#: gtk/gtkentry.c:986 +#: gtk/gtkentry.c:1029 msgid "Progress Pulse Step" msgstr "Előrehaladás lépésegysége" -#: gtk/gtkentry.c:987 +#: gtk/gtkentry.c:1030 msgid "" "The fraction of total entry width to move the progress bouncing block for " "each call to gtk_entry_progress_pulse()" @@ -2273,313 +2293,314 @@ msgstr "" "A teljes bejegyzésszélesség része törtként, amennyivel a pattogó tégla " "elmozdul a gtk_entry_progress_pulse() minden hívásakor" -#: gtk/gtkentry.c:1003 +#: gtk/gtkentry.c:1044 msgid "Show text in the entry when it’s empty and unfocused" msgstr "Szöveg megjelenítése a bejegyzésben, ha üres és nincs fókuszban" -#: gtk/gtkentry.c:1016 -msgid "Primary pixbuf" -msgstr "Elsődleges pixbuf" +#: gtk/gtkentry.c:1055 +msgid "Primary paintable" +msgstr "Elsődleges kifesthető" -#: gtk/gtkentry.c:1017 -msgid "Primary pixbuf for the entry" -msgstr "A beviteli mező elsődleges pixbufja" +#: gtk/gtkentry.c:1056 +msgid "Primary paintable for the entry" +msgstr "A beviteli mező elsődleges kifesthetője" -#: gtk/gtkentry.c:1030 -msgid "Secondary pixbuf" -msgstr "Másodlagos pixbuf" +#: gtk/gtkentry.c:1067 +msgid "Secondary paintable" +msgstr "Másodlagos kifesthető" -#: gtk/gtkentry.c:1031 -msgid "Secondary pixbuf for the entry" -msgstr "A beviteli mező másodlagos pixbufja" +#: gtk/gtkentry.c:1068 +msgid "Secondary paintable for the entry" +msgstr "A beviteli mező másodlagos kifesthetője" -#: gtk/gtkentry.c:1044 +#: gtk/gtkentry.c:1079 msgid "Primary icon name" msgstr "Elsődleges ikonnév" -#: gtk/gtkentry.c:1045 +#: gtk/gtkentry.c:1080 msgid "Icon name for primary icon" msgstr "Az elsődleges ikon neve" -#: gtk/gtkentry.c:1058 +#: gtk/gtkentry.c:1091 msgid "Secondary icon name" msgstr "Másodlagos ikonnév" -#: gtk/gtkentry.c:1059 +#: gtk/gtkentry.c:1092 msgid "Icon name for secondary icon" msgstr "A másodlagos ikon neve" -#: gtk/gtkentry.c:1072 +#: gtk/gtkentry.c:1103 msgid "Primary GIcon" msgstr "Elsődleges GIcon" -#: gtk/gtkentry.c:1073 +#: gtk/gtkentry.c:1104 msgid "GIcon for primary icon" msgstr "Az elsődleges ikon GIconja" -#: gtk/gtkentry.c:1086 +#: gtk/gtkentry.c:1115 msgid "Secondary GIcon" msgstr "Másodlagos GIcon" -#: gtk/gtkentry.c:1087 +#: gtk/gtkentry.c:1116 msgid "GIcon for secondary icon" msgstr "A másodlagos ikon GIconja" -#: gtk/gtkentry.c:1100 +#: gtk/gtkentry.c:1127 msgid "Primary storage type" msgstr "Elsődleges tárolótípus" -#: gtk/gtkentry.c:1101 +#: gtk/gtkentry.c:1128 msgid "The representation being used for primary icon" msgstr "Az elsődleges ikonhoz használt ábrázolás" -#: gtk/gtkentry.c:1115 +#: gtk/gtkentry.c:1140 msgid "Secondary storage type" msgstr "Másodlagos tárolótípus" -#: gtk/gtkentry.c:1116 +#: gtk/gtkentry.c:1141 msgid "The representation being used for secondary icon" msgstr "A másodlagos ikonhoz használt ábrázolás" -#: gtk/gtkentry.c:1136 +#: gtk/gtkentry.c:1159 msgid "Primary icon activatable" msgstr "Elsődleges ikon aktiválható" -#: gtk/gtkentry.c:1137 +#: gtk/gtkentry.c:1160 msgid "Whether the primary icon is activatable" msgstr "Az elsődleges ikon aktiválható-e" -#: gtk/gtkentry.c:1156 +#: gtk/gtkentry.c:1177 msgid "Secondary icon activatable" msgstr "Másodlagos ikon aktiválható" -#: gtk/gtkentry.c:1157 +#: gtk/gtkentry.c:1178 msgid "Whether the secondary icon is activatable" msgstr "A másodlagos ikon aktiválható-e" -#: gtk/gtkentry.c:1177 +#: gtk/gtkentry.c:1196 msgid "Primary icon sensitive" msgstr "Elsődleges ikon érzékeny" -#: gtk/gtkentry.c:1178 +#: gtk/gtkentry.c:1197 msgid "Whether the primary icon is sensitive" msgstr "Az elsődleges ikon érzékeny-e" -#: gtk/gtkentry.c:1198 +#: gtk/gtkentry.c:1215 msgid "Secondary icon sensitive" msgstr "Másodlagos ikon érzékeny" -#: gtk/gtkentry.c:1199 +#: gtk/gtkentry.c:1216 msgid "Whether the secondary icon is sensitive" msgstr "A másodlagos ikon érzékeny-e" -#: gtk/gtkentry.c:1214 +#: gtk/gtkentry.c:1229 msgid "Primary icon tooltip text" msgstr "Elsődleges ikon buboréksúgó-szövege" -#: gtk/gtkentry.c:1215 gtk/gtkentry.c:1248 +#: gtk/gtkentry.c:1230 gtk/gtkentry.c:1259 msgid "The contents of the tooltip on the primary icon" msgstr "Elsődleges ikon buboréksúgójának tartalma" -#: gtk/gtkentry.c:1230 +#: gtk/gtkentry.c:1243 msgid "Secondary icon tooltip text" msgstr "Másodlagos ikon buboréksúgó-szövege" -#: gtk/gtkentry.c:1231 gtk/gtkentry.c:1265 +#: gtk/gtkentry.c:1244 gtk/gtkentry.c:1274 msgid "The contents of the tooltip on the secondary icon" msgstr "Másodlagos ikon buboréksúgójának tartalma" -#: gtk/gtkentry.c:1247 +#: gtk/gtkentry.c:1258 msgid "Primary icon tooltip markup" msgstr "Elsődleges ikon buboréksúgójának jelölőkódja" -#: gtk/gtkentry.c:1264 +#: gtk/gtkentry.c:1273 msgid "Secondary icon tooltip markup" msgstr "Másodlagos ikon buboréksúgójának jelölőkódja" -#: gtk/gtkentry.c:1283 gtk/gtktextview.c:984 +#: gtk/gtkentry.c:1290 gtk/gtktextview.c:920 msgid "IM module" msgstr "Beviteli mód modul" -#: gtk/gtkentry.c:1284 gtk/gtktextview.c:985 +#: gtk/gtkentry.c:1291 gtk/gtktextview.c:921 msgid "Which IM module should be used" msgstr "A használandó beviteli modul" -#: gtk/gtkentry.c:1297 +#: gtk/gtkentry.c:1302 msgid "Completion" msgstr "Kiegészítés" -#: gtk/gtkentry.c:1298 +#: gtk/gtkentry.c:1303 msgid "The auxiliary completion object" msgstr "A külső kiegészítési objektum" -#: gtk/gtkentry.c:1318 gtk/gtkimcontext.c:331 gtk/gtktextview.c:1002 +#: gtk/gtkentry.c:1321 gtk/gtkimcontext.c:331 gtk/gtktextview.c:936 msgid "Purpose" msgstr "Cél" -#: gtk/gtkentry.c:1319 gtk/gtkimcontext.c:332 gtk/gtktextview.c:1003 +#: gtk/gtkentry.c:1322 gtk/gtkimcontext.c:332 gtk/gtktextview.c:937 msgid "Purpose of the text field" msgstr "A szövegmező célja" -#: gtk/gtkentry.c:1334 gtk/gtkimcontext.c:339 gtk/gtktextview.c:1020 +#: gtk/gtkentry.c:1335 gtk/gtkimcontext.c:339 gtk/gtktextview.c:952 msgid "hints" msgstr "javaslatok" -#: gtk/gtkentry.c:1335 gtk/gtkimcontext.c:340 gtk/gtktextview.c:1021 +#: gtk/gtkentry.c:1336 gtk/gtkimcontext.c:340 gtk/gtktextview.c:953 msgid "Hints for the text field behaviour" msgstr "Javaslatok a szövegmező viselkedéséhez" -#: gtk/gtkentry.c:1355 gtk/gtklabel.c:763 -msgid "A list of style attributes to apply to the text of the label" -msgstr "A címke szövegén alkalmazandó stílusattribútumok listája" +#: gtk/gtkentry.c:1354 +msgid "A list of style attributes to apply to the text of the entry" +msgstr "A bemeneti mező szövegére alkalmazandó stílusattribútumok listája" -#: gtk/gtkentry.c:1369 gtk/gtkplacessidebar.c:4619 gtk/gtktextview.c:1037 +#: gtk/gtkentry.c:1366 gtk/gtkplacessidebar.c:4738 gtk/gtktextview.c:967 msgid "Populate all" msgstr "Összes feltöltése" -#: gtk/gtkentry.c:1370 gtk/gtktextview.c:1038 +#: gtk/gtkentry.c:1367 gtk/gtktextview.c:968 msgid "Whether to emit ::populate-popup for touch popups" msgstr "Kiadja-e a ::populate-popup üzenetet a felugró menü érintéséhez" -#: gtk/gtkentry.c:1383 gtk/gtktexttag.c:544 gtk/gtktextview.c:932 +#: gtk/gtkentry.c:1378 gtk/gtktexttag.c:529 gtk/gtktextview.c:870 msgid "Tabs" msgstr "Lapok" -#: gtk/gtkentry.c:1384 +#: gtk/gtkentry.c:1379 msgid "A list of tabstop locations to apply to the text of the entry" msgstr "A bejegyzés szövegére alkalmazandó tab helyek listája" -#: gtk/gtkentry.c:1398 +#: gtk/gtkentry.c:1391 msgid "Emoji icon" msgstr "Emodzsi ikon" -#: gtk/gtkentry.c:1399 +#: gtk/gtkentry.c:1392 msgid "Whether to show an icon for Emoji" msgstr "Megjelenjen-e emodzsi ikon" -#: gtk/gtkentrycompletion.c:349 +#: gtk/gtkentry.c:1398 +msgid "Enable Emoji completion" +msgstr "Emodzsi kiegészítés engedélyezése" + +#: gtk/gtkentry.c:1399 +msgid "Whether to suggest Emoji replacements" +msgstr "Javasoljon-e emodzsi cseréket" + +#: gtk/gtkentrycompletion.c:331 msgid "Completion Model" msgstr "Kiegészítési modell" -#: gtk/gtkentrycompletion.c:350 +#: gtk/gtkentrycompletion.c:332 msgid "The model to find matches in" msgstr "Modell az egyezések kereséséhez" -#: gtk/gtkentrycompletion.c:356 +#: gtk/gtkentrycompletion.c:338 msgid "Minimum Key Length" msgstr "Minimális kulcshossz" -#: gtk/gtkentrycompletion.c:357 +#: gtk/gtkentrycompletion.c:339 msgid "Minimum length of the search key in order to look up matches" msgstr "A keresési kulcs minimális hossza egyezések kereséséhez" -#: gtk/gtkentrycompletion.c:371 gtk/gtkiconview.c:431 +#: gtk/gtkentrycompletion.c:351 gtk/gtkiconview.c:422 msgid "Text column" msgstr "Szövegoszlop" -#: gtk/gtkentrycompletion.c:372 +#: gtk/gtkentrycompletion.c:352 msgid "The column of the model containing the strings." msgstr "A karakterláncokat tartalmazó modelloszlop." -#: gtk/gtkentrycompletion.c:388 +#: gtk/gtkentrycompletion.c:366 msgid "Inline completion" msgstr "Soron belüli kiegészítés" -#: gtk/gtkentrycompletion.c:389 +#: gtk/gtkentrycompletion.c:367 msgid "Whether the common prefix should be inserted automatically" msgstr "Az általános előtag beszúrásra kerüljön-e automatikusan" -#: gtk/gtkentrycompletion.c:403 +#: gtk/gtkentrycompletion.c:379 msgid "Popup completion" msgstr "Kiegészítések legördülő menüként" -#: gtk/gtkentrycompletion.c:404 +#: gtk/gtkentrycompletion.c:380 msgid "Whether the completions should be shown in a popup window" msgstr "A kiegészítések legördülő menüként jelenjenek-e meg" -#: gtk/gtkentrycompletion.c:418 +#: gtk/gtkentrycompletion.c:392 msgid "Popup set width" msgstr "Felbukkanó halmaz szélessége" -#: gtk/gtkentrycompletion.c:419 +#: gtk/gtkentrycompletion.c:393 msgid "If TRUE, the popup window will have the same size as the entry" msgstr "" "Ha IGAZ, a felbukkanó ablak szélessége azonos lesz a mező szélességével" -#: gtk/gtkentrycompletion.c:435 +#: gtk/gtkentrycompletion.c:407 msgid "Popup single match" msgstr "Egyetlen találat felbukkanása" -#: gtk/gtkentrycompletion.c:436 +#: gtk/gtkentrycompletion.c:408 msgid "If TRUE, the popup window will appear for a single match." msgstr "Ha IGAZ, a felbukkanó ablak meg fog jelenni az egyetlen találathoz." -#: gtk/gtkentrycompletion.c:450 +#: gtk/gtkentrycompletion.c:420 msgid "Inline selection" msgstr "Beágyazott kiválasztás" -#: gtk/gtkentrycompletion.c:451 +#: gtk/gtkentrycompletion.c:421 msgid "Your description here" msgstr "Ide jön a leírás" -#: gtk/gtkeventcontroller.c:169 +#: gtk/gtkeventcontroller.c:145 msgid "Widget the gesture relates to" msgstr "Felületi elem, amelyhez a mozdulat kapcsolódik" -#: gtk/gtkeventcontroller.c:181 +#: gtk/gtkeventcontroller.c:155 msgid "Propagation phase" msgstr "Terjesztési fázis" -#: gtk/gtkeventcontroller.c:182 +#: gtk/gtkeventcontroller.c:156 msgid "Propagation phase at which this controller is run" msgstr "Az a terjesztési fázis, amelyben ez a vezérlő fut" -#: gtk/gtkexpander.c:283 +#: gtk/gtkeventcontrollerscroll.c:369 gtk/gtkeventcontrollerscroll.c:370 +msgid "Flags" +msgstr "Jelzők" + +#: gtk/gtkexpander.c:269 msgid "Expanded" msgstr "Kiterjesztett" -#: gtk/gtkexpander.c:284 +#: gtk/gtkexpander.c:270 msgid "Whether the expander has been opened to reveal the child widget" msgstr "" "A kiterjesztő meg lett-e nyitva a gyermek felületi elem megjelenítésére" -#: gtk/gtkexpander.c:292 +#: gtk/gtkexpander.c:278 msgid "Text of the expander’s label" msgstr "A kiterjesztő címkéjének szövege" -#: gtk/gtkexpander.c:307 gtk/gtklabel.c:769 +#: gtk/gtkexpander.c:293 gtk/gtklabel.c:770 gtk/gtkmodelbutton.c:990 msgid "Use markup" msgstr "Jelölés használata" -#: gtk/gtkexpander.c:308 gtk/gtklabel.c:770 +#: gtk/gtkexpander.c:294 gtk/gtklabel.c:771 msgid "The text of the label includes XML markup. See pango_parse_markup()" msgstr "" "A címke szövege tartalmaz-e XML jelölőkódokat. Lásd: pango_parse_markup()" -#: gtk/gtkexpander.c:315 gtk/gtkframe.c:201 gtk/gtktoolbutton.c:229 -#: gtk/gtktoolitemgroup.c:1562 +#: gtk/gtkexpander.c:301 gtk/gtkframe.c:190 gtk/gtktoolbutton.c:226 msgid "Label widget" msgstr "Címke felületi elem" -#: gtk/gtkexpander.c:316 +#: gtk/gtkexpander.c:302 msgid "A widget to display in place of the usual expander label" msgstr "A szokásos kiterjesztő címke helyén megjelenítendő felületi elem" -#: gtk/gtkexpander.c:323 -msgid "Label fill" -msgstr "Címkekitöltés" - -#: gtk/gtkexpander.c:324 -msgid "Whether the label widget should fill all available horizontal space" -msgstr "" -"A címke felületi elemnek ki kell-e töltenie az összes rendelkezésre álló " -"területet?" - -#: gtk/gtkexpander.c:339 +#: gtk/gtkexpander.c:315 msgid "Resize toplevel" msgstr "Felsőszintű átméretezése" -#: gtk/gtkexpander.c:340 +#: gtk/gtkexpander.c:316 msgid "" "Whether the expander will resize the toplevel window upon expanding and " "collapsing" @@ -2587,104 +2608,103 @@ msgstr "" "A kiterjesztő átméretezi-e a felső szintű ablakot kiterjesztéskor és " "összecsukáskor" -#: gtk/gtkfilechooserbutton.c:450 +#: gtk/gtkfilechooserbutton.c:424 msgid "Dialog" msgstr "Párbeszédablak" -#: gtk/gtkfilechooserbutton.c:451 +#: gtk/gtkfilechooserbutton.c:425 msgid "The file chooser dialog to use." msgstr "A használandó fájlválasztó párbeszédablak." -#: gtk/gtkfilechooserbutton.c:466 +#: gtk/gtkfilechooserbutton.c:438 msgid "The title of the file chooser dialog." msgstr "A fájlválasztó párbeszédablak címe." -#: gtk/gtkfilechooserbutton.c:480 +#: gtk/gtkfilechooserbutton.c:450 msgid "The desired width of the button widget, in characters." msgstr "A gomb felületi elem kívánt szélessége, karakterekben megadva." -#: gtk/gtkfilechooser.c:375 +#: gtk/gtkfilechooser.c:373 msgid "Action" msgstr "Művelet" -#: gtk/gtkfilechooser.c:376 +#: gtk/gtkfilechooser.c:374 msgid "The type of operation that the file selector is performing" msgstr "A fájlválasztó által végzett művelet típusa" -#: gtk/gtkfilechooser.c:382 gtk/gtkrecentchooser.c:253 +#: gtk/gtkfilechooser.c:380 msgid "Filter" msgstr "Szűrő" -#: gtk/gtkfilechooser.c:383 +#: gtk/gtkfilechooser.c:381 msgid "The current filter for selecting which files are displayed" msgstr "A megjelenítendő fájlok kiválasztására használt aktuális szűrő" -#: gtk/gtkfilechooser.c:388 gtk/gtkplacessidebar.c:4592 -#: gtk/gtkplacesview.c:2200 +#: gtk/gtkfilechooser.c:386 gtk/gtkplacessidebar.c:4706 +#: gtk/gtkplacesview.c:2210 msgid "Local Only" msgstr "Csak helyi" -#: gtk/gtkfilechooser.c:389 +#: gtk/gtkfilechooser.c:387 msgid "Whether the selected file(s) should be limited to local file: URLs" msgstr "A kijelölt fájlok csak helyi URL-ek lehetnek-e" -#: gtk/gtkfilechooser.c:394 +#: gtk/gtkfilechooser.c:392 msgid "Preview widget" msgstr "Előnézet felületi elem" -#: gtk/gtkfilechooser.c:395 +#: gtk/gtkfilechooser.c:393 msgid "Application supplied widget for custom previews." msgstr "Az alkalmazás által biztosított felületi elem egyedi előképekhez." -#: gtk/gtkfilechooser.c:400 +#: gtk/gtkfilechooser.c:398 msgid "Preview Widget Active" msgstr "Előkép felületi elem aktív" -#: gtk/gtkfilechooser.c:401 +#: gtk/gtkfilechooser.c:399 msgid "" "Whether the application supplied widget for custom previews should be shown." msgstr "" "Az alkalmazás által az egyedi előképekhez biztosított felületi elem " "megjelenítésre kerüljön-e." -#: gtk/gtkfilechooser.c:406 +#: gtk/gtkfilechooser.c:404 msgid "Use Preview Label" msgstr "Előnézet címke használata" -#: gtk/gtkfilechooser.c:407 -msgid "Whether to display a stock label with the name of the previewed file." -msgstr "" -"A megjelenített fájl neve mellé megjelenítésre kerüljön-e egy gyári címke." +#: gtk/gtkfilechooser.c:405 +msgid "Whether to display a label with the name of the previewed file." +msgstr "A megjelenített fájl neve mellé megjelenítésre kerüljön-e egy címke." -#: gtk/gtkfilechooser.c:412 +#: gtk/gtkfilechooser.c:410 msgid "Extra widget" msgstr "Extra felületi elem" -#: gtk/gtkfilechooser.c:413 +#: gtk/gtkfilechooser.c:411 msgid "Application supplied widget for extra options." msgstr "Az alkalmazás által biztosított felületi elem extra beállításokhoz." -#: gtk/gtkfilechooser.c:418 gtk/gtkrecentchooser.c:193 +#: gtk/gtkfilechooser.c:416 msgid "Select Multiple" msgstr "Többszörös kijelölés" -#: gtk/gtkfilechooser.c:419 +#: gtk/gtkfilechooser.c:417 msgid "Whether to allow multiple files to be selected" msgstr "Lehet-e egyszerre több fájlt kijelölni" -#: gtk/gtkfilechooser.c:425 +#: gtk/gtkfilechooser.c:423 msgid "Show Hidden" msgstr "Rejtett megjelenítése" -#: gtk/gtkfilechooser.c:426 +#: gtk/gtkfilechooser.c:424 msgid "Whether the hidden files and folders should be displayed" msgstr "A rejtett fájlok és mappák megjelenítésre kerüljenek-e" -#: gtk/gtkfilechooser.c:441 +#: gtk/gtkfilechooser.c:437 msgid "Do overwrite confirmation" msgstr "Felülírási megerősítés kérése" -#: gtk/gtkfilechooser.c:442 +#: gtk/gtkfilechooser.c:438 msgid "" "Whether a file chooser in save mode will present an overwrite confirmation " "dialog if necessary." @@ -2692,11 +2712,11 @@ msgstr "" "A fájlválasztó mentési módban megjelenítsen-e felülírás megerősítése " "párbeszédablakot, ha az szükséges." -#: gtk/gtkfilechooser.c:458 +#: gtk/gtkfilechooser.c:452 msgid "Allow folder creation" msgstr "Mappalétrehozás engedélyezése" -#: gtk/gtkfilechooser.c:459 +#: gtk/gtkfilechooser.c:453 msgid "" "Whether a file chooser not in open mode will offer the user to create new " "folders." @@ -2704,147 +2724,131 @@ msgstr "" "A nem mentési módban lévő fájlválasztó lehetővé tegye-e új mappák " "létrehozását?" -#: gtk/gtkfilechoosernative.c:809 +#: gtk/gtkfilechoosernative.c:788 msgid "Accept label" msgstr "Elfogadás címkéje" -#: gtk/gtkfilechoosernative.c:810 +#: gtk/gtkfilechoosernative.c:789 msgid "The label on the accept button" msgstr "Az elfogadás gomb címkéje" -#: gtk/gtkfilechoosernative.c:822 +#: gtk/gtkfilechoosernative.c:801 msgid "Cancel label" msgstr "Mégse címkéje" -#: gtk/gtkfilechoosernative.c:823 +#: gtk/gtkfilechoosernative.c:802 msgid "The label on the cancel button" msgstr "A mégse gomb címkéje" -#: gtk/gtkfilechooserwidget.c:8443 gtk/gtkfilechooserwidget.c:8444 +#: gtk/gtkfilechooserwidget.c:8312 gtk/gtkfilechooserwidget.c:8313 msgid "Search mode" msgstr "Keresési mód" -#: gtk/gtkfilechooserwidget.c:8450 gtk/gtkfilechooserwidget.c:8451 -#: gtk/gtkheaderbar.c:1890 gtk/gtkshortcutsshortcut.c:626 +#: gtk/gtkfilechooserwidget.c:8319 gtk/gtkfilechooserwidget.c:8320 +#: gtk/gtkheaderbar.c:1857 gtk/gtkshortcutsshortcut.c:626 msgid "Subtitle" msgstr "Felirat" -#: gtk/gtkfixed.c:155 gtk/gtklayout.c:520 gtk/gtktreeviewcolumn.c:259 +#: gtk/gtkfixed.c:162 gtk/gtklayout.c:508 gtk/gtktreeviewcolumn.c:268 msgid "X position" msgstr "X pozíció" -#: gtk/gtkfixed.c:156 gtk/gtklayout.c:521 +#: gtk/gtkfixed.c:163 gtk/gtklayout.c:509 msgid "X position of child widget" msgstr "A gyermek felületi elem X pozíciója" -#: gtk/gtkfixed.c:163 gtk/gtklayout.c:530 +#: gtk/gtkfixed.c:170 gtk/gtklayout.c:518 msgid "Y position" msgstr "Y pozíció" -#: gtk/gtkfixed.c:164 gtk/gtklayout.c:531 +#: gtk/gtkfixed.c:171 gtk/gtklayout.c:519 msgid "Y position of child widget" msgstr "A gyermek felületi elem Y pozíciója" -#: gtk/gtkflowbox.c:3469 gtk/gtkiconview.c:394 gtk/gtklistbox.c:407 -#: gtk/gtktreeselection.c:131 +#: gtk/gtkflowbox.c:3431 gtk/gtkiconview.c:389 gtk/gtklistbox.c:428 +#: gtk/gtktreeselection.c:129 msgid "Selection mode" msgstr "Kijelölési mód" -#: gtk/gtkflowbox.c:3470 gtk/gtkiconview.c:395 gtk/gtklistbox.c:408 +#: gtk/gtkflowbox.c:3432 gtk/gtkiconview.c:390 gtk/gtklistbox.c:429 msgid "The selection mode" msgstr "A kijelölés módja" -#: gtk/gtkflowbox.c:3483 gtk/gtkiconview.c:651 gtk/gtklistbox.c:415 -#: gtk/gtktreeview.c:1195 +#: gtk/gtkflowbox.c:3445 gtk/gtkiconview.c:618 gtk/gtklistbox.c:436 +#: gtk/gtktreeview.c:1164 msgid "Activate on Single Click" msgstr "Aktiválás egy kattintással" -#: gtk/gtkflowbox.c:3484 gtk/gtkiconview.c:652 gtk/gtklistbox.c:416 -#: gtk/gtktreeview.c:1196 +#: gtk/gtkflowbox.c:3446 gtk/gtkiconview.c:619 gtk/gtklistbox.c:437 +#: gtk/gtktreeview.c:1165 msgid "Activate row on a single click" msgstr "A sor aktiválása egy kattintással" -#: gtk/gtkflowbox.c:3513 +#: gtk/gtkflowbox.c:3452 gtk/gtklistbox.c:443 gtk/gtklistbox.c:444 +msgid "Accept unpaired release" +msgstr "Páratlan elengedés elfogadása" + +#: gtk/gtkflowbox.c:3453 +msgid "Accept an unpaired release event" +msgstr "Páratlan elengedési esemény elfogadása" + +#: gtk/gtkflowbox.c:3482 msgid "Minimum Children Per Line" msgstr "Gyermekek soronkénti minimális száma" -#: gtk/gtkflowbox.c:3514 +#: gtk/gtkflowbox.c:3483 msgid "" "The minimum number of children to allocate consecutively in the given " "orientation." msgstr "" "Az egymás után lefoglalandó gyermekek minimális száma az adott tájolásban." -#: gtk/gtkflowbox.c:3527 +#: gtk/gtkflowbox.c:3496 msgid "Maximum Children Per Line" msgstr "Gyermekek soronkénti maximális száma" -#: gtk/gtkflowbox.c:3528 +#: gtk/gtkflowbox.c:3497 msgid "" "The maximum amount of children to request space for consecutively in the " "given orientation." msgstr "Helykérés egymás után maximum ennyi gyermeknek az adott tájolásban." -#: gtk/gtkflowbox.c:3540 +#: gtk/gtkflowbox.c:3509 msgid "Vertical spacing" msgstr "Függőleges térköz" -#: gtk/gtkflowbox.c:3541 +#: gtk/gtkflowbox.c:3510 msgid "The amount of vertical space between two children" msgstr "A két gyermek közötti függőleges távolság" -#: gtk/gtkflowbox.c:3552 +#: gtk/gtkflowbox.c:3521 msgid "Horizontal spacing" msgstr "Vízszintes térköz" -#: gtk/gtkflowbox.c:3553 +#: gtk/gtkflowbox.c:3522 msgid "The amount of horizontal space between two children" msgstr "A két gyermek közötti vízszintes távolság" -#: gtk/gtkfontbutton.c:508 +#: gtk/gtkfontbutton.c:529 msgid "The title of the font chooser dialog" msgstr "A betűkészlet-választó párbeszédablak címe" -#: gtk/gtkfontbutton.c:522 -msgid "Font name" -msgstr "Betűkészlet neve" - -#: gtk/gtkfontbutton.c:523 -msgid "The name of the selected font" -msgstr "A kiválasztott betűkészlet neve" - -#: gtk/gtkfontbutton.c:538 +#: gtk/gtkfontbutton.c:542 msgid "Use font in label" msgstr "Címke betűkészlete" -#: gtk/gtkfontbutton.c:539 +#: gtk/gtkfontbutton.c:543 msgid "Whether the label is drawn in the selected font" msgstr "A címke a kiválasztott betűtípussal legyen-e rajzolva" -#: gtk/gtkfontbutton.c:554 +#: gtk/gtkfontbutton.c:556 msgid "Use size in label" msgstr "Méret használata a címkében" -#: gtk/gtkfontbutton.c:555 +#: gtk/gtkfontbutton.c:557 msgid "Whether the label is drawn with the selected font size" msgstr "A címke a kiválasztott betűmérettel legyen-e megrajzolva" -#: gtk/gtkfontbutton.c:571 -msgid "Show style" -msgstr "Stílus megjelenítése" - -#: gtk/gtkfontbutton.c:572 -msgid "Whether the selected font style is shown in the label" -msgstr "A címkében a kiválasztott betűstílus legyen-e megjelenítve" - -#: gtk/gtkfontbutton.c:587 -msgid "Show size" -msgstr "Méret megjelenítése" - -#: gtk/gtkfontbutton.c:588 -msgid "Whether selected font size is shown in the label" -msgstr "A címkében a kiválasztott betűméret legyen-e megjelenítve" - #: gtk/gtkfontchooser.c:77 msgid "Font description" msgstr "Betűleírás" @@ -2865,471 +2869,464 @@ msgstr "Szöveg-előnézeti beviteli mező megjelenítése" msgid "Whether the preview text entry is shown or not" msgstr "A szöveg-előnézeti beviteli mező látható-e" -#: gtk/gtkframe.c:171 +#: gtk/gtkfontchooser.c:116 +msgid "Selection level" +msgstr "Kijelölési szint" + +#: gtk/gtkfontchooser.c:117 +msgid "Whether to select family, face or font" +msgstr "Válasszon-e ki betűcsaládot, betűtípust vagy betűkészletet" + +#: gtk/gtkfontchooser.c:133 +msgid "Font features" +msgstr "Betűjellemzők" + +#: gtk/gtkfontchooser.c:134 +msgid "Font features as a string" +msgstr "Betűjellemzők karakterláncként" + +#: gtk/gtkfontchooser.c:149 +msgid "Language for which features have been selected" +msgstr "Nyelv, amelyhez a jellemzők ki lettek választva" + +#: gtk/gtkfontchooserwidget.c:708 +msgid "The tweak action" +msgstr "A finomhangolási művelet" + +#: gtk/gtkfontchooserwidget.c:709 +msgid "The toggle action to switch to the tweak page" +msgstr "A kapcsoló művelet a finomhangolási oldalra váltáshoz" + +#: gtk/gtkframe.c:168 msgid "Text of the frame’s label" msgstr "A keret címkéjének szövege" -#: gtk/gtkframe.c:177 +#: gtk/gtkframe.c:174 msgid "Label xalign" msgstr "Címke vízszintes igazítása" -#: gtk/gtkframe.c:178 +#: gtk/gtkframe.c:175 msgid "The horizontal alignment of the label" msgstr "A címke vízszintes igazítása" -#: gtk/gtkframe.c:185 -msgid "Label yalign" -msgstr "Címke függőleges igazítása" - -#: gtk/gtkframe.c:186 -msgid "The vertical alignment of the label" -msgstr "A címke függőleges igazítása" - -#: gtk/gtkframe.c:193 +#: gtk/gtkframe.c:182 msgid "Frame shadow" msgstr "Keretárnyék" -#: gtk/gtkframe.c:194 +#: gtk/gtkframe.c:183 msgid "Appearance of the frame" msgstr "A keret megjelenése" -#: gtk/gtkframe.c:202 +#: gtk/gtkframe.c:191 msgid "A widget to display in place of the usual frame label" msgstr "A szokásos keretcímke helyén megjelenítendő felületi elem" -#: gtk/gtkgesture.c:798 +#: gtk/gtkgesture.c:793 msgid "Number of points" msgstr "Pontok száma" -#: gtk/gtkgesture.c:799 +#: gtk/gtkgesture.c:794 msgid "Number of points needed to trigger the gesture" msgstr "A mozdulat aktiválásához szükséges pontok száma" -#: gtk/gtkgesturelongpress.c:282 +#: gtk/gtkgesturelongpress.c:287 msgid "Delay factor" msgstr "Késleltetési tényező" -#: gtk/gtkgesturelongpress.c:283 +#: gtk/gtkgesturelongpress.c:288 msgid "Factor by which to modify the default timeout" msgstr "Együttható, amellyel módosítandó az alapértelmezett időkorlát" -#: gtk/gtkgesturepan.c:237 gtk/gtkorientable.c:59 +#: gtk/gtkgesturepan.c:235 gtk/gtkorientable.c:57 msgid "Orientation" msgstr "Elhelyezkedés" -#: gtk/gtkgesturepan.c:238 +#: gtk/gtkgesturepan.c:236 msgid "Allowed orientations" msgstr "Engedélyezett tájolások" -#: gtk/gtkgesturesingle.c:262 +#: gtk/gtkgesturesingle.c:267 msgid "Handle only touch events" msgstr "Csak érintési események kezelése" -#: gtk/gtkgesturesingle.c:263 +#: gtk/gtkgesturesingle.c:268 msgid "Whether the gesture handles only touch events" msgstr "A mozdulat csak érintési eseményeket kezel-e" -#: gtk/gtkgesturesingle.c:277 gtk/gtkgesturesingle.c:278 +#: gtk/gtkgesturesingle.c:280 gtk/gtkgesturesingle.c:281 msgid "Whether the gesture is exclusive" msgstr "A mozdulat kizárólagos-e" -#: gtk/gtkgesturesingle.c:291 +#: gtk/gtkgesturesingle.c:292 msgid "Button number" msgstr "Gombszám" -#: gtk/gtkgesturesingle.c:292 +#: gtk/gtkgesturesingle.c:293 msgid "Button number to listen to" msgstr "Figyelendő gomb száma" -#: gtk/gtkglarea.c:723 +#: gtk/gtkglarea.c:796 msgid "Context" msgstr "Környezet" -#: gtk/gtkglarea.c:724 +#: gtk/gtkglarea.c:797 msgid "The GL context" msgstr "A GL környezet" -#: gtk/gtkglarea.c:746 +#: gtk/gtkglarea.c:817 msgid "Auto render" msgstr "Automatikus megjelenítés" -#: gtk/gtkglarea.c:747 +#: gtk/gtkglarea.c:818 msgid "Whether the GtkGLArea renders on each redraw" msgstr "A GtkGLArea jelenjen-e meg minden újrarajzoláskor" -#: gtk/gtkglarea.c:767 -msgid "Has alpha" -msgstr "Van alfája" - -#: gtk/gtkglarea.c:768 -msgid "Whether the color buffer has an alpha component" -msgstr "A színpuffernek van-e alfa összetevője" - -#: gtk/gtkglarea.c:784 +#: gtk/gtkglarea.c:832 msgid "Has depth buffer" msgstr "Van mélységpuffere" -#: gtk/gtkglarea.c:785 +#: gtk/gtkglarea.c:833 msgid "Whether a depth buffer is allocated" msgstr "Van-e lefoglalva mélységpuffer" -#: gtk/gtkglarea.c:801 +#: gtk/gtkglarea.c:847 msgid "Has stencil buffer" msgstr "Van stencilpuffere" -#: gtk/gtkglarea.c:802 +#: gtk/gtkglarea.c:848 msgid "Whether a stencil buffer is allocated" msgstr "Van-e lefoglalva stencilpuffer" -#: gtk/gtkglarea.c:820 +#: gtk/gtkglarea.c:864 msgid "Use OpenGL ES" msgstr "OpenGL ES használata" -#: gtk/gtkglarea.c:821 +#: gtk/gtkglarea.c:865 msgid "Whether the context uses OpenGL or OpenGL ES" msgstr "A kontextus OpenGL-t vagy OpenGL ES-t használ-e" -#: gtk/gtkgrid.c:1652 +#: gtk/gtkgrid.c:1622 msgid "Row spacing" msgstr "Sortávolság" -#: gtk/gtkgrid.c:1653 +#: gtk/gtkgrid.c:1623 msgid "The amount of space between two consecutive rows" msgstr "Két egymás utáni sor közötti távolság" -#: gtk/gtkgrid.c:1659 +#: gtk/gtkgrid.c:1629 msgid "Column spacing" msgstr "Oszloptávolság" -#: gtk/gtkgrid.c:1660 +#: gtk/gtkgrid.c:1630 msgid "The amount of space between two consecutive columns" msgstr "Két egymás melletti oszlop közötti távolság" -#: gtk/gtkgrid.c:1666 +#: gtk/gtkgrid.c:1636 msgid "Row Homogeneous" msgstr "Sor homogén" -#: gtk/gtkgrid.c:1667 +#: gtk/gtkgrid.c:1637 msgid "If TRUE, the rows are all the same height" msgstr "Ha IGAZ, akkor a sorok egyforma magasak" -#: gtk/gtkgrid.c:1673 +#: gtk/gtkgrid.c:1643 msgid "Column Homogeneous" msgstr "Oszlop homogén" -#: gtk/gtkgrid.c:1674 +#: gtk/gtkgrid.c:1644 msgid "If TRUE, the columns are all the same width" msgstr "Ha IGAZ, akkor az oszlopok egyforma szélesek" -#: gtk/gtkgrid.c:1680 +#: gtk/gtkgrid.c:1650 msgid "Baseline Row" msgstr "Alapvonal sora" -#: gtk/gtkgrid.c:1681 +#: gtk/gtkgrid.c:1651 msgid "The row to align the to the baseline when valign is GTK_ALIGN_BASELINE" msgstr "Az alapvonalhoz igazítandó sor, ha a valign=GTK_ALIGN_BASELINE" -#: gtk/gtkgrid.c:1691 +#: gtk/gtkgrid.c:1661 msgid "Left attachment" msgstr "Bal csatolás" -#: gtk/gtkgrid.c:1692 gtk/gtkmenu.c:824 +#: gtk/gtkgrid.c:1662 gtk/gtkmenu.c:788 msgid "The column number to attach the left side of the child to" msgstr "Az oszlop száma, amelyhez a gyermek bal széle csatolásra kerül." -#: gtk/gtkgrid.c:1698 +#: gtk/gtkgrid.c:1668 msgid "Top attachment" msgstr "Felső csatolás" -#: gtk/gtkgrid.c:1699 +#: gtk/gtkgrid.c:1669 msgid "The row number to attach the top side of a child widget to" msgstr "" "A sor száma, amelyhez a gyermek felületi elem felső oldala csatolásra kerül" -#: gtk/gtkgrid.c:1705 gtk/gtklayout.c:546 gtk/gtktreeviewcolumn.c:267 +#: gtk/gtkgrid.c:1675 gtk/gtklayout.c:534 gtk/gtktreeviewcolumn.c:276 msgid "Width" msgstr "Szélesség" -#: gtk/gtkgrid.c:1706 +#: gtk/gtkgrid.c:1676 msgid "The number of columns that a child spans" msgstr "Az oszlopok száma, amelyeket a gyermek átfog" -#: gtk/gtkgrid.c:1712 gtk/gtklayout.c:555 gtk/gtkshortcutsgroup.c:359 +#: gtk/gtkgrid.c:1682 gtk/gtklayout.c:543 gtk/gtkshortcutsgroup.c:360 msgid "Height" msgstr "Magasság" -#: gtk/gtkgrid.c:1713 +#: gtk/gtkgrid.c:1683 msgid "The number of rows that a child spans" msgstr "A sorok száma, amelyeket a gyermek átfog" -#: gtk/gtkheaderbar.c:1884 +#: gtk/gtkheaderbar.c:1851 msgid "The title to display" msgstr "A megjelenítendő cím" -#: gtk/gtkheaderbar.c:1891 +#: gtk/gtkheaderbar.c:1858 msgid "The subtitle to display" msgstr "A megjelenítendő felirat" -#: gtk/gtkheaderbar.c:1897 +#: gtk/gtkheaderbar.c:1864 msgid "Custom Title" msgstr "Egyéni cím" -#: gtk/gtkheaderbar.c:1898 +#: gtk/gtkheaderbar.c:1865 msgid "Custom title widget to display" msgstr "A megjelenítendő egyéni cím felületi elem" -#: gtk/gtkheaderbar.c:1922 -msgid "Show decorations" -msgstr "Dekorációk megjelenítése" +#: gtk/gtkheaderbar.c:1889 +msgid "Show title buttons" +msgstr "Címgombok megjelenítése" -#: gtk/gtkheaderbar.c:1923 -msgid "Whether to show window decorations" -msgstr "Megjelenjenek-e az ablakdekorációk" +#: gtk/gtkheaderbar.c:1890 +msgid "Whether to show title buttons" +msgstr "Megjelenjenek-e a címgombok" -#: gtk/gtkheaderbar.c:1941 gtk/gtksettings.c:918 +#: gtk/gtkheaderbar.c:1906 gtk/gtksettings.c:875 msgid "Decoration Layout" msgstr "Dekoráció elrendezése" -#: gtk/gtkheaderbar.c:1942 gtk/gtksettings.c:919 +#: gtk/gtkheaderbar.c:1907 gtk/gtksettings.c:876 msgid "The layout for window decorations" msgstr "Az ablakdekorációk elrendezése" -#: gtk/gtkheaderbar.c:1955 +#: gtk/gtkheaderbar.c:1918 msgid "Decoration Layout Set" msgstr "Dekoráció elrendezése beállítva" -#: gtk/gtkheaderbar.c:1956 +#: gtk/gtkheaderbar.c:1919 msgid "Whether the decoration-layout property has been set" msgstr "A Dekoráció elrendezése tulajdonság be van-e állítva" -#: gtk/gtkheaderbar.c:1970 +#: gtk/gtkheaderbar.c:1931 msgid "Has Subtitle" msgstr "Van felirata" -#: gtk/gtkheaderbar.c:1971 +#: gtk/gtkheaderbar.c:1932 msgid "Whether to reserve space for a subtitle" msgstr "Kell-e helyet foglalni a feliratnak" -#: gtk/gtkiconview.c:413 +#: gtk/gtkiconview.c:406 msgid "Pixbuf column" msgstr "Pixbuf oszlop" -#: gtk/gtkiconview.c:414 +#: gtk/gtkiconview.c:407 msgid "Model column used to retrieve the icon pixbuf from" msgstr "A modellnek az ikon pixbuf értékének lekérdezéséhez használt oszlopa" -#: gtk/gtkiconview.c:432 +#: gtk/gtkiconview.c:423 msgid "Model column used to retrieve the text from" msgstr "A modellnek a szöveg lekérdezéséhez használt oszlopa" -#: gtk/gtkiconview.c:451 +#: gtk/gtkiconview.c:440 msgid "Markup column" msgstr "Jelölőkódoszlop" -#: gtk/gtkiconview.c:452 +#: gtk/gtkiconview.c:441 msgid "Model column used to retrieve the text if using Pango markup" msgstr "" "A modellnek a szöveg lekérdezéséhez használt oszlopa Pango jelölőkódok " "használata esetén" -#: gtk/gtkiconview.c:459 +#: gtk/gtkiconview.c:448 msgid "Icon View Model" msgstr "Ikonnézet-modell" -#: gtk/gtkiconview.c:460 +#: gtk/gtkiconview.c:449 msgid "The model for the icon view" msgstr "Az ikonnézet modellje" -#: gtk/gtkiconview.c:476 +#: gtk/gtkiconview.c:463 msgid "Number of columns" msgstr "Oszlopok száma" -#: gtk/gtkiconview.c:477 +#: gtk/gtkiconview.c:464 msgid "Number of columns to display" msgstr "A megjelenítendő oszlopok száma" -#: gtk/gtkiconview.c:494 +#: gtk/gtkiconview.c:479 msgid "Width for each item" msgstr "Az egyes elemek szélessége" -#: gtk/gtkiconview.c:495 +#: gtk/gtkiconview.c:480 msgid "The width used for each item" msgstr "Az egyes elemekhez használt szélesség" -#: gtk/gtkiconview.c:511 +#: gtk/gtkiconview.c:494 msgid "Space which is inserted between cells of an item" msgstr "Az elem cellái közötti távolság" -#: gtk/gtkiconview.c:526 +#: gtk/gtkiconview.c:507 msgid "Row Spacing" msgstr "Sorköz" -#: gtk/gtkiconview.c:527 +#: gtk/gtkiconview.c:508 msgid "Space which is inserted between grid rows" msgstr "A rács sorai közötti távolság" -#: gtk/gtkiconview.c:542 +#: gtk/gtkiconview.c:521 msgid "Column Spacing" msgstr "Oszlopköz" -#: gtk/gtkiconview.c:543 +#: gtk/gtkiconview.c:522 msgid "Space which is inserted between grid columns" msgstr "A rács oszlopai közé szúrandó távolság" -#: gtk/gtkiconview.c:558 +#: gtk/gtkiconview.c:535 msgid "Margin" msgstr "Margó" -#: gtk/gtkiconview.c:559 +#: gtk/gtkiconview.c:536 msgid "Space which is inserted at the edges of the icon view" msgstr "Az ikonnézet szélei közötti távolság" -#: gtk/gtkiconview.c:574 +#: gtk/gtkiconview.c:549 msgid "Item Orientation" msgstr "Elem tájolása" -#: gtk/gtkiconview.c:575 +#: gtk/gtkiconview.c:550 msgid "" "How the text and icon of each item are positioned relative to each other" msgstr "A szöveg és az ikon hogyan helyezkednek el egymáshoz képest" -#: gtk/gtkiconview.c:591 gtk/gtktreeview.c:1049 gtk/gtktreeviewcolumn.c:350 +#: gtk/gtkiconview.c:564 gtk/gtktreeview.c:1030 gtk/gtktreeviewcolumn.c:359 msgid "Reorderable" msgstr "Átrendezhető" -#: gtk/gtkiconview.c:592 gtk/gtktreeview.c:1050 +#: gtk/gtkiconview.c:565 gtk/gtktreeview.c:1031 msgid "View is reorderable" msgstr "A nézet átrendezhető" -#: gtk/gtkiconview.c:599 gtk/gtktreeview.c:1179 +#: gtk/gtkiconview.c:572 gtk/gtktreeview.c:1150 msgid "Tooltip Column" msgstr "Eszköztipposzlop" -#: gtk/gtkiconview.c:600 +#: gtk/gtkiconview.c:573 msgid "The column in the model containing the tooltip texts for the items" msgstr "Az elemek eszköztippszövegeit tartalmazó modelloszlop." -#: gtk/gtkiconview.c:617 +#: gtk/gtkiconview.c:588 msgid "Item Padding" msgstr "Elem térköze" -#: gtk/gtkiconview.c:618 +#: gtk/gtkiconview.c:589 msgid "Padding around icon view items" msgstr "Az ikonnézet elemei körüli térköz" -#: gtk/gtkimage.c:170 -msgid "Pixbuf" -msgstr "Pixbuf" - -#: gtk/gtkimage.c:171 -msgid "A GdkPixbuf to display" -msgstr "A megjelenítendő GdkPixbuf" - -#: gtk/gtkimage.c:177 -msgid "Surface" -msgstr "Felület" +#: gtk/gtkimage.c:154 gtk/gtkpicture.c:309 +msgid "Paintable" +msgstr "Kifesthető" -#: gtk/gtkimage.c:178 -msgid "A cairo_surface_t to display" -msgstr "A megjelenítendő cairo_surface_t objektum" +#: gtk/gtkimage.c:155 +msgid "A GdkPaintable to display" +msgstr "A megjelenítendő GdkPaintable" -#: gtk/gtkimage.c:184 gtk/gtkrecentmanager.c:289 +#: gtk/gtkimage.c:161 gtk/gtkrecentmanager.c:282 msgid "Filename" msgstr "Fájlnév" -#: gtk/gtkimage.c:185 +#: gtk/gtkimage.c:162 msgid "Filename to load and display" msgstr "A betöltendő és megjelenítendő fájl neve" -#: gtk/gtkimage.c:191 gtk/gtkscalebutton.c:206 gtk/gtktoolbar.c:528 -#: gtk/gtktoolpalette.c:915 +#: gtk/gtkimage.c:168 msgid "Icon size" msgstr "Ikonméret" -#: gtk/gtkimage.c:192 +#: gtk/gtkimage.c:169 msgid "Symbolic size to use for icon set or named icon" msgstr "Szimbolikus méret ikonkészlet vagy megnevezett ikon használata esetén" -#: gtk/gtkimage.c:208 +#: gtk/gtkimage.c:183 msgid "Pixel size" msgstr "Képpontméret" -#: gtk/gtkimage.c:209 +#: gtk/gtkimage.c:184 msgid "Pixel size to use for named icon" msgstr "Megnevezett ikon képpontmérete" -#: gtk/gtkimage.c:216 -msgid "Animation" -msgstr "Animáció" - -#: gtk/gtkimage.c:217 -msgid "GdkPixbufAnimation to display" -msgstr "A megjelenítendő GdkPixbuf animáció" - -#: gtk/gtkimage.c:261 +#: gtk/gtkimage.c:223 msgid "Resource" msgstr "Erőforrás" -#: gtk/gtkimage.c:262 +#: gtk/gtkimage.c:224 msgid "The resource path being displayed" msgstr "A megjelenítendő erőforrás útvonala" -#: gtk/gtkimage.c:268 +#: gtk/gtkimage.c:230 msgid "Storage type" msgstr "Tárolótípus" -#: gtk/gtkimage.c:269 +#: gtk/gtkimage.c:231 msgid "The representation being used for image data" msgstr "A képadatokhoz használt ábrázolás" -#: gtk/gtkimage.c:286 +#: gtk/gtkimage.c:246 msgid "Use Fallback" msgstr "Tartalék használata" -#: gtk/gtkimage.c:287 +#: gtk/gtkimage.c:247 msgid "Whether to use icon names fallback" msgstr "Az ikonnevek tartaléka használandó-e" -#: gtk/gtkinfobar.c:331 gtk/gtkmessagedialog.c:176 +#: gtk/gtkinfobar.c:332 gtk/gtkmessagedialog.c:175 msgid "Message Type" msgstr "Üzenettípus" -#: gtk/gtkinfobar.c:332 gtk/gtkmessagedialog.c:177 +#: gtk/gtkinfobar.c:333 gtk/gtkmessagedialog.c:176 msgid "The type of message" msgstr "Az üzenet típusa" -#: gtk/gtkinfobar.c:346 gtk/gtksearchbar.c:397 +#: gtk/gtkinfobar.c:345 gtk/gtksearchbar.c:441 msgid "Show Close Button" msgstr "Bezárás gomb megjelenítése" -#: gtk/gtkinfobar.c:347 +#: gtk/gtkinfobar.c:346 msgid "Whether to include a standard close button" msgstr "Legyen-e szabványos bezárás gomb" -#: gtk/gtkinfobar.c:354 -#| msgid "Controls whether the action bar shows its contents or not" +#: gtk/gtkinfobar.c:353 msgid "Controls whether the info bar shows its contents or not" msgstr "" "Azt szabályozza, hogy az információs sáv megjelenítse-e a tartalmát vagy sem" -#: gtk/gtkinvisible.c:95 gtk/gtkmountoperation.c:180 gtk/gtkstylecontext.c:210 -#: gtk/gtkwindow.c:983 -msgid "Screen" -msgstr "Képernyő" +#: gtk/gtkinvisible.c:96 +msgid "The display where this window will be displayed" +msgstr "A kijelző, amelyen az ablak megjelenik" -#: gtk/gtkinvisible.c:96 gtk/gtkwindow.c:984 -msgid "The screen where this window will be displayed" -msgstr "A képernyő, amelyen az ablak megjelenik" - -#: gtk/gtklabel.c:756 +#: gtk/gtklabel.c:757 msgid "The text of the label" msgstr "A címke szövege" -#: gtk/gtklabel.c:783 gtk/gtktexttag.c:382 gtk/gtktextview.c:833 +#: gtk/gtklabel.c:764 +msgid "A list of style attributes to apply to the text of the label" +msgstr "A címke szövegén alkalmazandó stílusattribútumok listája" + +#: gtk/gtklabel.c:784 gtk/gtktexttag.c:371 gtk/gtktextview.c:775 msgid "Justification" msgstr "Sorkizárás" -#: gtk/gtklabel.c:784 +#: gtk/gtklabel.c:785 msgid "" "The alignment of the lines in the text of the label relative to each other. " "This does NOT affect the alignment of the label within its allocation. See " @@ -3338,19 +3335,19 @@ msgstr "" "A címke szövege sorainak igazítása egymáshoz. Ez NINCS hatással a címke " "elhelyezkedésére. Azzal kapcsolatban lásd: GtkLabel:xalign" -#: gtk/gtklabel.c:819 +#: gtk/gtklabel.c:816 msgid "Y align" msgstr "Y-igazítás" -#: gtk/gtklabel.c:820 +#: gtk/gtklabel.c:817 msgid "The vertical alignment, from 0 (top) to 1 (bottom)" msgstr "A függőleges igazítás, 0 (felül) és 1 (alul) között" -#: gtk/gtklabel.c:827 +#: gtk/gtklabel.c:824 msgid "Pattern" msgstr "Minta" -#: gtk/gtklabel.c:828 +#: gtk/gtklabel.c:825 msgid "" "A string with _ characters in positions correspond to characters in the text " "to underline" @@ -3358,43 +3355,43 @@ msgstr "" "A szövegben aláhúzandó karakterek helyén _ karaktereket tartalmazó " "karakterlánc" -#: gtk/gtklabel.c:834 +#: gtk/gtklabel.c:831 msgid "Line wrap" msgstr "Sorok tördelése" -#: gtk/gtklabel.c:835 +#: gtk/gtklabel.c:832 msgid "If set, wrap lines if the text becomes too wide" msgstr "Ha be van állítva, a túl széles szövegsorok áttördelésre kerülnek" -#: gtk/gtklabel.c:850 +#: gtk/gtklabel.c:845 msgid "Line wrap mode" msgstr "Sorok tördelésének módja" -#: gtk/gtklabel.c:851 +#: gtk/gtklabel.c:846 msgid "If wrap is set, controls how linewrapping is done" msgstr "Ha be van állítva tördelés, a tördelés módját vezérli" -#: gtk/gtklabel.c:859 +#: gtk/gtklabel.c:854 msgid "Whether the label text can be selected with the mouse" msgstr "A címke szövege kijelölhető-e az egérrel" -#: gtk/gtklabel.c:865 +#: gtk/gtklabel.c:860 msgid "Mnemonic key" msgstr "Mnemonikus billentyű" -#: gtk/gtklabel.c:866 +#: gtk/gtklabel.c:861 msgid "The mnemonic accelerator key for this label" msgstr "A címke hívóbetűje" -#: gtk/gtklabel.c:873 +#: gtk/gtklabel.c:868 msgid "Mnemonic widget" msgstr "Mnemonikus felületi elem" -#: gtk/gtklabel.c:874 +#: gtk/gtklabel.c:869 msgid "The widget to be activated when the label’s mnemonic key is pressed" msgstr "A címke hívóbetűjének megnyomásakor aktiválandó felületi elem" -#: gtk/gtklabel.c:914 +#: gtk/gtklabel.c:907 msgid "" "The preferred place to ellipsize the string, if the label does not have " "enough room to display the entire string" @@ -3402,213 +3399,337 @@ msgstr "" "A karakterlánc preferált kihagyásainak a helye, amennyiben a címkén nincs " "elég hely a teljes karakterlánc megjelenítéséhez" -#: gtk/gtklabel.c:952 +#: gtk/gtklabel.c:941 msgid "Single Line Mode" msgstr "Egysoros mód" -#: gtk/gtklabel.c:953 +#: gtk/gtklabel.c:942 msgid "Whether the label is in single line mode" msgstr "A címke kötelezően egysoros-e" -#: gtk/gtklabel.c:972 +#: gtk/gtklabel.c:959 msgid "The desired maximum width of the label, in characters" msgstr "A címke megkívánt maximális szélessége, karakterekben megadva" -#: gtk/gtklabel.c:988 +#: gtk/gtklabel.c:973 msgid "Track visited links" msgstr "Látogatott hivatkozások követése" -#: gtk/gtklabel.c:989 +#: gtk/gtklabel.c:974 msgid "Whether visited links should be tracked" msgstr "A látogatott hivatkozások követésre kerüljenek-e?" -#: gtk/gtklabel.c:1005 +#: gtk/gtklabel.c:988 msgid "Number of lines" msgstr "Sorok száma" -#: gtk/gtklabel.c:1006 +#: gtk/gtklabel.c:989 msgid "The desired number of lines, when ellipsizing a wrapping label" msgstr "A sorok kívánt száma tördelt címke csonkításakor" -#: gtk/gtklayout.c:547 +#: gtk/gtklayout.c:535 msgid "The width of the layout" msgstr "Az elrendezés szélessége" -#: gtk/gtklayout.c:556 +#: gtk/gtklayout.c:544 msgid "The height of the layout" msgstr "Az elrendezés magassága" -#: gtk/gtklevelbar.c:987 +#: gtk/gtklevelbar.c:983 msgid "Currently filled value level" msgstr "Jelenleg kitöltött érték szintje" -#: gtk/gtklevelbar.c:988 +#: gtk/gtklevelbar.c:984 msgid "Currently filled value level of the level bar" msgstr "A szintsávon jelenleg kitöltött érték szintje" -#: gtk/gtklevelbar.c:1002 +#: gtk/gtklevelbar.c:996 msgid "Minimum value level for the bar" msgstr "A sáv minimális értékszintje" -#: gtk/gtklevelbar.c:1003 +#: gtk/gtklevelbar.c:997 msgid "Minimum value level that can be displayed by the bar" msgstr "A sáv által megjeleníthető minimális értékszint" -#: gtk/gtklevelbar.c:1017 +#: gtk/gtklevelbar.c:1009 msgid "Maximum value level for the bar" msgstr "A sáv maximális értékszintje" -#: gtk/gtklevelbar.c:1018 +#: gtk/gtklevelbar.c:1010 msgid "Maximum value level that can be displayed by the bar" msgstr "A sáv által megjeleníthető maximális értékszint" -#: gtk/gtklevelbar.c:1038 +#: gtk/gtklevelbar.c:1028 msgid "The mode of the value indicator" msgstr "Az értékjelző módja" -#: gtk/gtklevelbar.c:1039 +#: gtk/gtklevelbar.c:1029 msgid "The mode of the value indicator displayed by the bar" msgstr "A sávon megjelenő értékjelző módja" -#: gtk/gtklevelbar.c:1055 +#: gtk/gtklevelbar.c:1043 msgid "Invert the direction in which the level bar grows" msgstr "A szintsáv növekedési irányának megfordítása" -#: gtk/gtklinkbutton.c:168 +#: gtk/gtklinkbutton.c:161 msgid "URI" msgstr "URI" -#: gtk/gtklinkbutton.c:169 +#: gtk/gtklinkbutton.c:162 msgid "The URI bound to this button" msgstr "A gombhoz kötött URI cím" -#: gtk/gtklinkbutton.c:184 +#: gtk/gtklinkbutton.c:175 msgid "Visited" msgstr "Látogatott" -#: gtk/gtklinkbutton.c:185 +#: gtk/gtklinkbutton.c:176 msgid "Whether this link has been visited." msgstr "A hivatkozás meg lett-e látogatva." -#: gtk/gtklistbox.c:3443 +#: gtk/gtklistbox.c:3414 msgid "Whether this row can be activated" msgstr "A sor aktiválható-e" -#: gtk/gtklistbox.c:3457 +#: gtk/gtklistbox.c:3426 msgid "Whether this row can be selected" msgstr "A sor kijelölhető-e" -#: gtk/gtklockbutton.c:265 +#: gtk/gtklockbutton.c:268 msgid "Permission" msgstr "Jogosultság" -#: gtk/gtklockbutton.c:266 +#: gtk/gtklockbutton.c:269 msgid "The GPermission object controlling this button" msgstr "A gombot vezérlő GPermission objektum" -#: gtk/gtklockbutton.c:273 +#: gtk/gtklockbutton.c:276 msgid "Lock Text" msgstr "Zárolási szöveg" -#: gtk/gtklockbutton.c:274 +#: gtk/gtklockbutton.c:277 msgid "The text to display when prompting the user to lock" msgstr "A felhasználó zárolásra felszólításakor megjelenítendő szöveg" -#: gtk/gtklockbutton.c:282 +#: gtk/gtklockbutton.c:285 msgid "Unlock Text" msgstr "Feloldási szöveg" -#: gtk/gtklockbutton.c:283 +#: gtk/gtklockbutton.c:286 msgid "The text to display when prompting the user to unlock" msgstr "A felhasználó feloldásra felszólításakor megjelenítendő szöveg" -#: gtk/gtklockbutton.c:291 +#: gtk/gtklockbutton.c:294 msgid "Lock Tooltip" msgstr "Zárolási buboréksúgó" -#: gtk/gtklockbutton.c:292 +#: gtk/gtklockbutton.c:295 msgid "The tooltip to display when prompting the user to lock" msgstr "A felhasználó zárolásra felszólításakor megjelenítendő buboréksúgó" -#: gtk/gtklockbutton.c:300 +#: gtk/gtklockbutton.c:303 msgid "Unlock Tooltip" msgstr "Feloldási buboréksúgó" -#: gtk/gtklockbutton.c:301 +#: gtk/gtklockbutton.c:304 msgid "The tooltip to display when prompting the user to unlock" msgstr "A felhasználó feloldásra felszólításakor megjelenítendő buboréksúgó" -#: gtk/gtklockbutton.c:309 +#: gtk/gtklockbutton.c:312 msgid "Not Authorized Tooltip" msgstr "Nincs felhatalmazás buboréksúgó" -#: gtk/gtklockbutton.c:310 +#: gtk/gtklockbutton.c:313 msgid "" "The tooltip to display when prompting the user cannot obtain authorization" msgstr "" "A megjelenítendő buboréksúgó, amikor a felhasználó nem kapott felhatalmazást" -#: gtk/gtkmagnifier.c:284 +#: gtk/gtkmagnifier.c:194 msgid "Inspected" msgstr "Felügyelt" -#: gtk/gtkmagnifier.c:285 +#: gtk/gtkmagnifier.c:195 msgid "Inspected widget" msgstr "Felügyelt felületi elem" -#: gtk/gtkmagnifier.c:291 gtk/gtkmagnifier.c:292 +#: gtk/gtkmagnifier.c:201 gtk/gtkmagnifier.c:202 msgid "magnification" -msgstr "Nagyítás" +msgstr "nagyítás" -#: gtk/gtkmagnifier.c:298 gtk/gtkmagnifier.c:299 +#: gtk/gtkmagnifier.c:208 gtk/gtkmagnifier.c:209 msgid "resize" msgstr "átméretezés" -#: gtk/gtkmenubar.c:180 +#: gtk/gtkmediacontrols.c:269 gtk/gtkvideo.c:321 +msgid "Media Stream" +msgstr "Médiafolyam" + +#: gtk/gtkmediacontrols.c:270 +msgid "The media stream managed" +msgstr "A kezelt médiafolyam" + +#: gtk/gtkmediafile.c:161 gtk/gtkpicture.c:321 gtk/gtkvideo.c:297 +msgid "File" +msgstr "Fájl" + +#: gtk/gtkmediafile.c:162 +msgid "File being played back" +msgstr "A lejátszott fájl" + +#: gtk/gtkmediafile.c:173 +msgid "Input stream" +msgstr "Beviteli adatfolyam" + +#: gtk/gtkmediafile.c:174 +msgid "Input stream being played back" +msgstr "A lejátszott bemeneti adatfolyam" + +#: gtk/gtkmediastream.c:301 +msgid "Prepared" +msgstr "Előkészítve" + +#: gtk/gtkmediastream.c:302 +msgid "Whether the stream has finished initializing" +msgstr "Az adatfolyam befejezte-e az előkészítést" + +#: gtk/gtkmediastream.c:313 +msgid "Error" +msgstr "Hiba" + +#: gtk/gtkmediastream.c:314 +msgid "Error the stream is in" +msgstr "Hiba az adatfolyamban" + +#: gtk/gtkmediastream.c:325 +msgid "Has audio" +msgstr "Van-e hang" + +#: gtk/gtkmediastream.c:326 +msgid "Whether the stream contains audio" +msgstr "A médiafolyam tartalmaz-e hangot" + +#: gtk/gtkmediastream.c:337 +msgid "Has video" +msgstr "Van-e videó" + +#: gtk/gtkmediastream.c:338 +msgid "Whether the stream contains video" +msgstr "A médiafolyam tartalmaz-e videót" + +#: gtk/gtkmediastream.c:349 +msgid "Playing" +msgstr "Lejátszás" + +#: gtk/gtkmediastream.c:350 +msgid "Whether the stream is playing" +msgstr "Lejátszás alatt van-e a médiafolyam" + +#: gtk/gtkmediastream.c:361 +msgid "Ended" +msgstr "Befejezve" + +#: gtk/gtkmediastream.c:362 +msgid "Set when playback has finished" +msgstr "Beállításra kerül, ha a lejátszás befejeződött" + +#: gtk/gtkmediastream.c:373 +msgid "Timestamp" +msgstr "Időbélyeg" + +#: gtk/gtkmediastream.c:374 gtk/gtkmediastream.c:386 +msgid "Timestamp in microseconds" +msgstr "Időbélyeg ezredmásodpercekben" + +#: gtk/gtkmediastream.c:385 +msgid "Duration" +msgstr "Hossz" + +#: gtk/gtkmediastream.c:397 +msgid "Seekable" +msgstr "Pozicionálható" + +#: gtk/gtkmediastream.c:398 +msgid "Set unless seeking is not supported" +msgstr "Beállításra kerül, kivéve ha a pozicionálás nem támogatott" + +#: gtk/gtkmediastream.c:409 +msgid "Seeking" +msgstr "Pozicionálás" + +#: gtk/gtkmediastream.c:410 +msgid "Set while a seek is in progress" +msgstr "Beállításra kerül, ha pozicionálás van folyamatban" + +#: gtk/gtkmediastream.c:421 gtk/gtkvideo.c:309 +msgid "Loop" +msgstr "Végtelenítés" + +#: gtk/gtkmediastream.c:422 +msgid "Try to restart the media from the beginning once it ended." +msgstr "A média újrakezdésének kísérlete, ha véget ért." + +#: gtk/gtkmediastream.c:433 +msgid "Muted" +msgstr "Némítva" + +#: gtk/gtkmediastream.c:434 +msgid "Whether the audio stream should be muted." +msgstr "A hangfolyam némítva legyen-e." + +#: gtk/gtkmediastream.c:445 +msgid "Volume" +msgstr "Hangerő" + +#: gtk/gtkmediastream.c:446 +msgid "Volume of the audio stream." +msgstr "A hangfolyam hangereje." + +#: gtk/gtkmenubar.c:176 msgid "Pack direction" msgstr "Csomagolás iránya" -#: gtk/gtkmenubar.c:181 +#: gtk/gtkmenubar.c:177 msgid "The pack direction of the menubar" msgstr "A menüsáv csomagolásának iránya" -#: gtk/gtkmenubar.c:197 +#: gtk/gtkmenubar.c:191 msgid "Child Pack direction" msgstr "Gyermek csomagolásának iránya" -#: gtk/gtkmenubar.c:198 +#: gtk/gtkmenubar.c:192 msgid "The child pack direction of the menubar" msgstr "A menüsáv gyermekének csomagolásának iránya" -#: gtk/gtkmenubutton.c:486 +#: gtk/gtkmenubutton.c:494 msgid "Popup" msgstr "Felbukkanó" -#: gtk/gtkmenubutton.c:487 +#: gtk/gtkmenubutton.c:495 msgid "The dropdown menu." msgstr "A legördülő menü." -#: gtk/gtkmenubutton.c:505 +#: gtk/gtkmenubutton.c:511 msgid "Menu model" msgstr "Menümodell" -#: gtk/gtkmenubutton.c:506 +#: gtk/gtkmenubutton.c:512 msgid "The model from which the popup is made." msgstr "A modell, amelyből a felbukkanó készül." -#: gtk/gtkmenubutton.c:519 +#: gtk/gtkmenubutton.c:523 msgid "Align with" msgstr "Igazítás ehhez" -#: gtk/gtkmenubutton.c:520 +#: gtk/gtkmenubutton.c:524 msgid "The parent widget which the menu should align with." msgstr "Szülő felületi elem, amelyhez a menüt igazítani kell" -#: gtk/gtkmenubutton.c:534 gtk/gtkshortcutsshortcut.c:680 +#: gtk/gtkmenubutton.c:536 gtk/gtkshortcutsshortcut.c:680 msgid "Direction" msgstr "Irány" -#: gtk/gtkmenubutton.c:535 +#: gtk/gtkmenubutton.c:537 msgid "The direction the arrow should point." msgstr "Az irány, amerre a nyílnak mutatnia kell." @@ -3620,57 +3741,57 @@ msgstr "Popover használata" msgid "Use a popover instead of a menu" msgstr "Popover használata menü helyett" -#: gtk/gtkmenubutton.c:564 +#: gtk/gtkmenubutton.c:562 msgid "Popover" msgstr "Popover" -#: gtk/gtkmenubutton.c:565 +#: gtk/gtkmenubutton.c:563 msgid "The popover" msgstr "a popover" -#: gtk/gtkmenu.c:615 +#: gtk/gtkmenu.c:601 msgid "The currently selected menu item" msgstr "A jelenleg kiválasztott menüelem" -#: gtk/gtkmenu.c:629 +#: gtk/gtkmenu.c:613 msgid "Accel Group" msgstr "Gyorsítócsoport" -#: gtk/gtkmenu.c:630 +#: gtk/gtkmenu.c:614 msgid "The accel group holding accelerators for the menu" msgstr "A menü gyorsbillentyűit tartalmazó gyorsítócsoport" -#: gtk/gtkmenu.c:644 gtk/gtkmenuitem.c:627 +#: gtk/gtkmenu.c:626 gtk/gtkmenuitem.c:621 msgid "Accel Path" msgstr "Gyorsítóútvonal" -#: gtk/gtkmenu.c:645 +#: gtk/gtkmenu.c:627 msgid "An accel path used to conveniently construct accel paths of child items" msgstr "" "A gyermekelemek gyorsítóútvonalainak kényelmes létrehozására használt " "gyorsítóútvonal" -#: gtk/gtkmenu.c:661 +#: gtk/gtkmenu.c:641 msgid "Attach Widget" msgstr "Felületi elem csatolása" -#: gtk/gtkmenu.c:662 +#: gtk/gtkmenu.c:642 msgid "The widget the menu is attached to" msgstr "A felületi elem, amelyhez a menü csatolva van" -#: gtk/gtkmenu.c:676 +#: gtk/gtkmenu.c:654 msgid "Monitor" msgstr "Monitor" -#: gtk/gtkmenu.c:677 +#: gtk/gtkmenu.c:655 msgid "The monitor the menu will be popped up on" msgstr "Az a monitor, amelyen a menü megjelenik" -#: gtk/gtkmenu.c:697 +#: gtk/gtkmenu.c:673 msgid "Reserve Toggle Size" msgstr "Átkapcsoló méretének lefoglalása" -#: gtk/gtkmenu.c:698 +#: gtk/gtkmenu.c:674 msgid "" "A boolean that indicates whether the menu reserves space for toggles and " "icons" @@ -3678,87 +3799,87 @@ msgstr "" "Ez a logikai érték jelzi, hogy a menü lefoglalja-e a területet az " "átkapcsolók és ikonok számára" -#: gtk/gtkmenu.c:726 +#: gtk/gtkmenu.c:699 msgid "Anchor hints" msgstr "Horgony javaslatok" -#: gtk/gtkmenu.c:727 +#: gtk/gtkmenu.c:700 msgid "Positioning hints for when the menu might fall off-screen" msgstr "Elhelyezési javaslatok ahhoz, amikor a menü kieshez a képernyőről" -#: gtk/gtkmenu.c:755 +#: gtk/gtkmenu.c:725 msgid "Rect anchor dx" msgstr "Téglalaphorgony dx" -#: gtk/gtkmenu.c:756 +#: gtk/gtkmenu.c:726 msgid "Rect anchor horizontal offset" msgstr "Téglalaphorgony vízszintes eltolása" -#: gtk/gtkmenu.c:782 +#: gtk/gtkmenu.c:749 msgid "Rect anchor dy" msgstr "Téglalaphorgony dy" -#: gtk/gtkmenu.c:783 +#: gtk/gtkmenu.c:750 msgid "Rect anchor vertical offset" msgstr "Téglalaphorgony függőleges eltolása" -#: gtk/gtkmenu.c:809 +#: gtk/gtkmenu.c:773 msgid "Menu type hint" msgstr "Menütípus javaslat" -#: gtk/gtkmenu.c:810 +#: gtk/gtkmenu.c:774 msgid "Menu window type hint" msgstr "Menüablaktípus javaslat" -#: gtk/gtkmenu.c:823 +#: gtk/gtkmenu.c:787 msgid "Left Attach" msgstr "Bal csatolás" -#: gtk/gtkmenu.c:831 +#: gtk/gtkmenu.c:795 msgid "Right Attach" msgstr "Jobb csatolás" -#: gtk/gtkmenu.c:832 +#: gtk/gtkmenu.c:796 msgid "The column number to attach the right side of the child to" msgstr "Az oszlop száma, amelyhez a gyermek jobb széle csatolásra kerül." -#: gtk/gtkmenu.c:839 +#: gtk/gtkmenu.c:803 msgid "Top Attach" msgstr "Felső csatolás" -#: gtk/gtkmenu.c:840 +#: gtk/gtkmenu.c:804 msgid "The row number to attach the top of the child to" msgstr "A sor száma, amelyhez a gyermek felső széle csatolásra kerül." -#: gtk/gtkmenu.c:847 +#: gtk/gtkmenu.c:811 msgid "Bottom Attach" msgstr "Alsó csatolás" -#: gtk/gtkmenu.c:848 +#: gtk/gtkmenu.c:812 msgid "The row number to attach the bottom of the child to" msgstr "A sor száma, amelyhez a gyermek alsó széle csatolásra kerül." -#: gtk/gtkmenuitem.c:611 gtk/gtkpopovermenu.c:363 +#: gtk/gtkmenuitem.c:607 gtk/gtkpopovermenu.c:361 msgid "Submenu" msgstr "Almenü" -#: gtk/gtkmenuitem.c:612 +#: gtk/gtkmenuitem.c:608 msgid "The submenu attached to the menu item, or NULL if it has none" msgstr "A menüelemhez csatlakozó almenü, vagy NULL, ha nincs ilyen" -#: gtk/gtkmenuitem.c:628 +#: gtk/gtkmenuitem.c:622 msgid "Sets the accelerator path of the menu item" msgstr "Beállítja a menüelem gyorsítóútvonalát" -#: gtk/gtkmenuitem.c:642 +#: gtk/gtkmenuitem.c:634 msgid "The text for the child label" msgstr "A gyermekcímke szövege" -#: gtk/gtkmenushell.c:404 +#: gtk/gtkmenushell.c:408 msgid "Take Focus" msgstr "Fókusz megszerzése" -#: gtk/gtkmenushell.c:405 +#: gtk/gtkmenushell.c:409 msgid "A boolean that determines whether the menu grabs the keyboard focus" msgstr "" "Ez a logikai érték jelzi, hogy a menü lefoglalja-e a billentyűzetfókuszt" @@ -3771,127 +3892,133 @@ msgstr "Menü" msgid "The dropdown menu" msgstr "A legördülő menü." -#: gtk/gtkmessagedialog.c:184 +#: gtk/gtkmessagedialog.c:183 msgid "Message Buttons" msgstr "Üzenetgombok" -#: gtk/gtkmessagedialog.c:185 +#: gtk/gtkmessagedialog.c:184 msgid "The buttons shown in the message dialog" msgstr "Az üzenetablakban látható gombok" -#: gtk/gtkmessagedialog.c:202 +#: gtk/gtkmessagedialog.c:199 msgid "The primary text of the message dialog" msgstr "Az üzenetablak elsődleges szövege" -#: gtk/gtkmessagedialog.c:217 +#: gtk/gtkmessagedialog.c:212 msgid "Use Markup" msgstr "Jelölőkód használata" -#: gtk/gtkmessagedialog.c:218 +#: gtk/gtkmessagedialog.c:213 msgid "The primary text of the title includes Pango markup." msgstr "A cím elsődleges szövege tartalmaz-e Pango jelölőkódot" -#: gtk/gtkmessagedialog.c:232 +#: gtk/gtkmessagedialog.c:225 msgid "Secondary Text" msgstr "Másodlagos szöveg" -#: gtk/gtkmessagedialog.c:233 +#: gtk/gtkmessagedialog.c:226 msgid "The secondary text of the message dialog" msgstr "Az üzenetablak másodlagos szövege" -#: gtk/gtkmessagedialog.c:248 +#: gtk/gtkmessagedialog.c:239 msgid "Use Markup in secondary" msgstr "Jelölőkód használata másodlagos szövegben" -#: gtk/gtkmessagedialog.c:249 +#: gtk/gtkmessagedialog.c:240 msgid "The secondary text includes Pango markup." msgstr "A másodlagos szöveg tartalmaz-e Pango jelölőkódot" -#: gtk/gtkmessagedialog.c:265 +#: gtk/gtkmessagedialog.c:254 msgid "Message area" msgstr "Üzenetterület" -#: gtk/gtkmessagedialog.c:266 +#: gtk/gtkmessagedialog.c:255 msgid "GtkBox that holds the dialog’s primary and secondary labels" msgstr "Az ablak elsődleges és másodlagos címkéit tartalmazó GtkBox" -#: gtk/gtkmodelbutton.c:934 +#: gtk/gtkmodelbutton.c:950 msgid "Role" msgstr "Szerep" -#: gtk/gtkmodelbutton.c:935 +#: gtk/gtkmodelbutton.c:951 msgid "The role of this button" msgstr "Ennek a gombnak a szerepe" -#: gtk/gtkmodelbutton.c:951 +#: gtk/gtkmodelbutton.c:965 msgid "The icon" msgstr "Az ikon" -#: gtk/gtkmodelbutton.c:965 +#: gtk/gtkmodelbutton.c:977 msgid "The text" msgstr "A szöveg" -#: gtk/gtkmodelbutton.c:994 +#: gtk/gtkmodelbutton.c:991 +#| msgid "The text of the label includes XML markup. See pango_parse_markup()" +msgid "The text of the button includes XML markup. See pango_parse_markup()" +msgstr "" +"A gomb szövege tartalmaz-e XML jelölőkódokat. Lásd: pango_parse_markup()" + +#: gtk/gtkmodelbutton.c:1016 msgid "Menu name" msgstr "Menünév" -#: gtk/gtkmodelbutton.c:995 +#: gtk/gtkmodelbutton.c:1017 msgid "The name of the menu to open" msgstr "A megnyitandó menü neve" -#: gtk/gtkmodelbutton.c:1011 +#: gtk/gtkmodelbutton.c:1031 msgid "Whether the menu is a parent" msgstr "A menü szülő-e" -#: gtk/gtkmodelbutton.c:1025 +#: gtk/gtkmodelbutton.c:1043 msgid "Centered" msgstr "Középre helyezett" -#: gtk/gtkmodelbutton.c:1026 +#: gtk/gtkmodelbutton.c:1044 msgid "Whether to center the contents" msgstr "Középre helyezze-e a tartalmat" -#: gtk/gtkmodelbutton.c:1041 +#: gtk/gtkmodelbutton.c:1057 msgid "Iconic" msgstr "Ikonszerű" -#: gtk/gtkmodelbutton.c:1042 +#: gtk/gtkmodelbutton.c:1058 msgid "Whether to prefer the icon over text" msgstr "Előnyben részesítse-e az ikont a szöveggel szemben" -#: gtk/gtkmountoperation.c:164 gtk/gtkstylecontext.c:232 +#: gtk/gtkmountoperation.c:165 gtk/gtkstylecontext.c:220 msgid "Parent" msgstr "Szülő" -#: gtk/gtkmountoperation.c:165 +#: gtk/gtkmountoperation.c:166 msgid "The parent window" msgstr "A szülőablak" -#: gtk/gtkmountoperation.c:172 +#: gtk/gtkmountoperation.c:173 msgid "Is Showing" msgstr "Megjelenik" -#: gtk/gtkmountoperation.c:173 +#: gtk/gtkmountoperation.c:174 msgid "Are we showing a dialog" msgstr "Megjelenik-e párbeszédablak" -#: gtk/gtkmountoperation.c:181 -msgid "The screen where this window will be displayed." -msgstr "A képernyő, amelyen az ablak megjelenik." +#: gtk/gtkmountoperation.c:182 +msgid "The display where this window will be displayed." +msgstr "A kijelző, amelyen ez az ablak megjelenik" -#: gtk/gtknativedialog.c:214 +#: gtk/gtknativedialog.c:212 msgid "Dialog Title" msgstr "Párbeszédablak címe" -#: gtk/gtknativedialog.c:215 +#: gtk/gtknativedialog.c:213 msgid "The title of the file chooser dialog" msgstr "A fájlválasztó párbeszédablak címe" -#: gtk/gtknativedialog.c:228 gtk/gtkpopover.c:1652 gtk/gtkwindow.c:889 +#: gtk/gtknativedialog.c:224 gtk/gtkpopover.c:1656 gtk/gtkwindow.c:869 msgid "Modal" msgstr "Kizárólagos" -#: gtk/gtknativedialog.c:229 +#: gtk/gtknativedialog.c:225 msgid "" "If TRUE, the dialog is modal (other windows are not usable while this one is " "up)" @@ -3899,64 +4026,64 @@ msgstr "" "Ha IGAZ, akkor az ablak kizárólagos (más ablakok nem használhatók addig, " "amíg ez látszik)" -#: gtk/gtknativedialog.c:243 +#: gtk/gtknativedialog.c:237 msgid "Whether the dialog is currently visible" msgstr "Látható-e a párbeszédablak" -#: gtk/gtknativedialog.c:256 gtk/gtkwindow.c:1106 +#: gtk/gtknativedialog.c:248 gtk/gtkwindow.c:1076 msgid "Transient for Window" msgstr "Áttetsző ezen ablak számára" -#: gtk/gtknativedialog.c:257 gtk/gtkwindow.c:1107 +#: gtk/gtknativedialog.c:249 gtk/gtkwindow.c:1077 msgid "The transient parent of the dialog" msgstr "A párbeszédablak áttetsző szülője" -#: gtk/gtknotebook.c:715 +#: gtk/gtknotebook.c:701 msgid "Page" msgstr "Lap" -#: gtk/gtknotebook.c:716 +#: gtk/gtknotebook.c:702 msgid "The index of the current page" msgstr "Az aktuális oldal indexe" -#: gtk/gtknotebook.c:723 +#: gtk/gtknotebook.c:709 msgid "Tab Position" msgstr "Lappozíció" -#: gtk/gtknotebook.c:724 +#: gtk/gtknotebook.c:710 msgid "Which side of the notebook holds the tabs" msgstr "A notesz melyik oldalán vannak a lapok" -#: gtk/gtknotebook.c:731 +#: gtk/gtknotebook.c:717 msgid "Show Tabs" msgstr "Lapok megjelenítése" -#: gtk/gtknotebook.c:732 +#: gtk/gtknotebook.c:718 msgid "Whether tabs should be shown" msgstr "A lapok megjelenjenek-e" -#: gtk/gtknotebook.c:738 +#: gtk/gtknotebook.c:724 msgid "Show Border" msgstr "Szegély mutatása" -#: gtk/gtknotebook.c:739 +#: gtk/gtknotebook.c:725 msgid "Whether the border should be shown" msgstr "A szegély megjelenjen-e" -#: gtk/gtknotebook.c:745 +#: gtk/gtknotebook.c:731 msgid "Scrollable" msgstr "Görgethető" -#: gtk/gtknotebook.c:746 +#: gtk/gtknotebook.c:732 msgid "If TRUE, scroll arrows are added if there are too many tabs to fit" msgstr "" "Ha IGAZ, akkor görgetősávok kerülnek megjelenítésre, ha túl sok lap látszana" -#: gtk/gtknotebook.c:752 +#: gtk/gtknotebook.c:738 msgid "Enable Popup" msgstr "Előugró menü engedélyezése" -#: gtk/gtknotebook.c:753 +#: gtk/gtknotebook.c:739 msgid "" "If TRUE, pressing the right mouse button on the notebook pops up a menu that " "you can use to go to a page" @@ -3964,178 +4091,227 @@ msgstr "" "Ha IGAZ, akkor a noteszen a jobb egérgomb megnyomására előugrik egy menü, " "amellyel egy adott oldalra lehet ugrani" -#: gtk/gtknotebook.c:766 +#: gtk/gtknotebook.c:750 msgid "Group Name" msgstr "Csoportnév" -#: gtk/gtknotebook.c:767 +#: gtk/gtknotebook.c:751 msgid "Group name for tab drag and drop" msgstr "Csoportnév lapok húzd és ejtsd műveleténél" -#: gtk/gtknotebook.c:776 +#: gtk/gtknotebook.c:760 msgid "Tab label" msgstr "Lapcímke" -#: gtk/gtknotebook.c:777 +#: gtk/gtknotebook.c:761 msgid "The string displayed on the child’s tab label" msgstr "A gyermek lap címkéjén megjelenő karakterlánc" -#: gtk/gtknotebook.c:783 +#: gtk/gtknotebook.c:767 msgid "Menu label" msgstr "Menücímke" -#: gtk/gtknotebook.c:784 +#: gtk/gtknotebook.c:768 msgid "The string displayed in the child’s menu entry" msgstr "A gyermek menübejegyzésen megjelenő karakterlánc" -#: gtk/gtknotebook.c:797 +#: gtk/gtknotebook.c:781 msgid "Tab expand" msgstr "Lap kibontása" -#: gtk/gtknotebook.c:798 +#: gtk/gtknotebook.c:782 msgid "Whether to expand the child’s tab" msgstr "A gyermek lapja kibontásra kerüljön-e" -#: gtk/gtknotebook.c:804 +#: gtk/gtknotebook.c:788 msgid "Tab fill" msgstr "Lap kitöltés" -#: gtk/gtknotebook.c:805 +#: gtk/gtknotebook.c:789 msgid "Whether the child’s tab should fill the allocated area" msgstr "A gyermek lapja kitöltse-e a számára lefoglalt teret" -#: gtk/gtknotebook.c:812 +#: gtk/gtknotebook.c:796 msgid "Tab reorderable" msgstr "A lap átrendezhető" -#: gtk/gtknotebook.c:813 +#: gtk/gtknotebook.c:797 msgid "Whether the tab is reorderable by user action" msgstr "A lap átrendezhető-e a felhasználó által" -#: gtk/gtknotebook.c:819 +#: gtk/gtknotebook.c:803 msgid "Tab detachable" msgstr "A lap leválasztható" -#: gtk/gtknotebook.c:820 +#: gtk/gtknotebook.c:804 msgid "Whether the tab is detachable" msgstr "A lap leválasztható-e" -#: gtk/gtkorientable.c:60 +#: gtk/gtkorientable.c:58 msgid "The orientation of the orientable" msgstr "A tájolható elem tájolása" -#: gtk/gtkoverlay.c:737 +#: gtk/gtkoverlay.c:808 msgid "Pass Through" msgstr "Átküldés" -#: gtk/gtkoverlay.c:737 +#: gtk/gtkoverlay.c:808 msgid "Pass through input, does not affect main child" msgstr "A bemenet átküldése, nem befolyásolja a fő gyermeket" -#: gtk/gtkoverlay.c:749 +#: gtk/gtkoverlay.c:820 +msgid "Measure" +msgstr "Mérőeszköz" + +#: gtk/gtkoverlay.c:820 +msgid "Include in size measurement" +msgstr "Beleszámítás a méretezésbe" + +#: gtk/gtkoverlay.c:830 msgid "Blur Radius" msgstr "Elmosás sugara" -#: gtk/gtkoverlay.c:749 +#: gtk/gtkoverlay.c:830 msgid "Apply a blur to the content behind this child" msgstr "Elmosás alkalmazása ezen gyermek mögött lévő tartalomra" -#: gtk/gtkoverlay.c:761 +#: gtk/gtkoverlay.c:840 msgid "Index" msgstr "Index" -#: gtk/gtkoverlay.c:762 +#: gtk/gtkoverlay.c:841 msgid "The index of the overlay in the parent, -1 for the main child" msgstr "Az átfedés indexe a szülőben, -1 a fő gyermeknél" -#: gtk/gtkpadcontroller.c:373 +#: gtk/gtkoverlay.c:851 +msgid "Clip Overlay" +msgstr "Fölötte lévők levágása" + +#: gtk/gtkoverlay.c:852 +msgid "Clip the overlay child widget so as to fit the parent" +msgstr "" +"A felett lévő gyermek felületi elemek levágása, hogy beleférjenek a szülőbe" + +#: gtk/gtkpadcontroller.c:369 msgid "Action group" msgstr "Műveletcsoport" -#: gtk/gtkpadcontroller.c:374 +#: gtk/gtkpadcontroller.c:370 msgid "Action group to launch actions from" msgstr "Műveletek indítása ezen műveletcsoportból" # GtkPadController is an event controller for the pads found in drawing # tablets (The collection of buttons and tactile sensors often found around # the stylus-sensitive area). -#: gtk/gtkpadcontroller.c:379 +#: gtk/gtkpadcontroller.c:375 msgid "Pad device" msgstr "Táblaeszköz" -#: gtk/gtkpadcontroller.c:380 +#: gtk/gtkpadcontroller.c:376 msgid "Pad device to control" msgstr "Vezérlendő táblaeszköz" -#: gtk/gtkpaned.c:389 +#: gtk/gtkpaned.c:395 msgid "" "Position of paned separator in pixels (0 means all the way to the left/top)" msgstr "" "A keretelválasztó helye képpontokban megadva (a 0 a bal/felső oldalt jelenti)" -#: gtk/gtkpaned.c:396 +#: gtk/gtkpaned.c:401 msgid "Position Set" msgstr "Pozíció beállítva" -#: gtk/gtkpaned.c:397 +#: gtk/gtkpaned.c:402 msgid "TRUE if the Position property should be used" msgstr "Ha IGAZ, akkor a Pozíció tulajdonságot kell használni" -#: gtk/gtkpaned.c:413 +#: gtk/gtkpaned.c:415 msgid "Minimal Position" msgstr "Minimális pozíció" -#: gtk/gtkpaned.c:414 +#: gtk/gtkpaned.c:416 msgid "Smallest possible value for the “position” property" msgstr "A „Pozíció” tulajdonság lehető legkisebb értéke" -#: gtk/gtkpaned.c:430 +#: gtk/gtkpaned.c:429 msgid "Maximal Position" msgstr "Maximális pozíció" -#: gtk/gtkpaned.c:431 +#: gtk/gtkpaned.c:430 msgid "Largest possible value for the “position” property" msgstr "A „Pozíció” tulajdonság lehető legnagyobb értéke" -#: gtk/gtkpaned.c:447 +#: gtk/gtkpaned.c:443 msgid "Wide Handle" msgstr "Széles fogantyú" -#: gtk/gtkpaned.c:448 +#: gtk/gtkpaned.c:444 msgid "Whether the paned should have a prominent handle" msgstr "Az ablakkeret rendelkezzen-e feltűnő fogantyúval" -#: gtk/gtkpaned.c:463 +#: gtk/gtkpaned.c:464 msgid "Resize" msgstr "Átméretezés" -#: gtk/gtkpaned.c:464 +#: gtk/gtkpaned.c:465 msgid "If TRUE, the child expands and shrinks along with the paned widget" msgstr "" "Ha IGAZ, akkor a gyermek kinyúlik és összezsugorodik a bekeretezett felületi " "elemmel együtt" -#: gtk/gtkpaned.c:479 +#: gtk/gtkpaned.c:478 msgid "Shrink" msgstr "Zsugorodás" -#: gtk/gtkpaned.c:480 +#: gtk/gtkpaned.c:479 msgid "If TRUE, the child can be made smaller than its requisition" msgstr "Ha IGAZ, akkor a gyermek a kért méretnél kisebbre is zsugorítható" -#: gtk/gtkplacessidebar.c:4561 +#: gtk/gtkpicture.c:310 +msgid "The GdkPaintable to display" +msgstr "A megjelenítendő GdkPaintable" + +#: gtk/gtkpicture.c:322 +msgid "File to load and display" +msgstr "A betöltendő és megjelenítendő fájl" + +#: gtk/gtkpicture.c:333 +msgid "Alternative text" +msgstr "Alternatív szöveg" + +#: gtk/gtkpicture.c:334 +msgid "The alternative textual description" +msgstr "Az alternatív szöveges leírás" + +#: gtk/gtkpicture.c:346 +msgid "Keep aspect ratio" +msgstr "Méretarány megtartása" + +#: gtk/gtkpicture.c:347 +msgid "Render contents respecting the aspect ratio" +msgstr "A tartalom megjelenítése a méretarány megtartásával" + +#: gtk/gtkpicture.c:358 +msgid "Can shrink" +msgstr "Zsugorítható" + +#: gtk/gtkpicture.c:359 +msgid "Allow self to be smaller than contents" +msgstr "Az objektum maga kisebb lehet mint a tartalom" + +#: gtk/gtkplacessidebar.c:4675 msgid "Location to Select" msgstr "Kiválasztandó hely" -#: gtk/gtkplacessidebar.c:4562 +#: gtk/gtkplacessidebar.c:4676 msgid "The location to highlight in the sidebar" msgstr "Az oldalsávban kiemelendő hely" -#: gtk/gtkplacessidebar.c:4567 gtk/gtkplacesview.c:2221 +#: gtk/gtkplacessidebar.c:4681 gtk/gtkplacesview.c:2231 msgid "Open Flags" msgstr "Megnyitás jelzői" -#: gtk/gtkplacessidebar.c:4568 gtk/gtkplacesview.c:2222 +#: gtk/gtkplacessidebar.c:4682 gtk/gtkplacesview.c:2232 msgid "" "Modes in which the calling application can open locations selected in the " "sidebar" @@ -4143,152 +4319,161 @@ msgstr "" "Azok a módok, amelyekben a hívó alkalmazás megnyithatja az oldalsávban " "kiválasztott helyeket" -#: gtk/gtkplacessidebar.c:4574 +#: gtk/gtkplacessidebar.c:4688 msgid "Show recent files" msgstr "Legutóbbi fájlok megjelenítése" -#: gtk/gtkplacessidebar.c:4575 +#: gtk/gtkplacessidebar.c:4689 msgid "Whether the sidebar includes a builtin shortcut for recent files" msgstr "Az oldalsáv tartalmaz-e beépített hivatkozást a legutóbbi fájlokra" -#: gtk/gtkplacessidebar.c:4580 +#: gtk/gtkplacessidebar.c:4694 msgid "Show “Desktop”" msgstr "„Asztal” megjelenítése" -#: gtk/gtkplacessidebar.c:4581 +#: gtk/gtkplacessidebar.c:4695 msgid "Whether the sidebar includes a builtin shortcut to the Desktop folder" msgstr "Az oldalsáv tartalmaz-e beépített hivatkozást az Asztal mappára" -#: gtk/gtkplacessidebar.c:4586 +#: gtk/gtkplacessidebar.c:4700 msgid "Show “Enter Location”" msgstr "Az „Adja meg a helyet” megjelenítése" -#: gtk/gtkplacessidebar.c:4587 +#: gtk/gtkplacessidebar.c:4701 msgid "" "Whether the sidebar includes a builtin shortcut to manually enter a location" msgstr "Az oldalsáv tartalmaz-e beépített hivatkozást egy hely megadásához" -#: gtk/gtkplacessidebar.c:4593 gtk/gtkplacesview.c:2201 +#: gtk/gtkplacessidebar.c:4707 gtk/gtkplacesview.c:2211 msgid "Whether the sidebar only includes local files" msgstr "Az oldalsáv csak helyi fájlokat tartalmaz-e" -#: gtk/gtkplacessidebar.c:4598 +#: gtk/gtkplacessidebar.c:4712 msgid "Show “Trash”" msgstr "„Kuka” megjelenítése" -#: gtk/gtkplacessidebar.c:4599 +#: gtk/gtkplacessidebar.c:4713 msgid "Whether the sidebar includes a builtin shortcut to the Trash location" msgstr "Az oldalsáv tartalmaz-e beépített hivatkozást a Kuka helyére" -#: gtk/gtkplacessidebar.c:4604 +#: gtk/gtkplacessidebar.c:4718 msgid "Show “Other locations”" msgstr "„Egyéb helyek” megjelenítése" -#: gtk/gtkplacessidebar.c:4605 +#: gtk/gtkplacessidebar.c:4719 msgid "Whether the sidebar includes an item to show external locations" msgstr "Az oldalsáv tartalmaz-e egy elemet a külső helyek megjelenítéséhez" -#: gtk/gtkplacessidebar.c:4620 +#: gtk/gtkplacessidebar.c:4724 +msgid "Show “Starred Location”" +msgstr "„Csillagozott hely” megjelenítése" + +#: gtk/gtkplacessidebar.c:4725 +msgid "Whether the sidebar includes an item to show starred files" +msgstr "" +"Az oldalsáv tartalmaz-e egy elemet a csillagozott fájlok megjelenítéséhez" + +#: gtk/gtkplacessidebar.c:4739 msgid "Whether to emit ::populate-popup for popups that are not menus" msgstr "Kiadja-e a ::populate-popup üzenetet a nem menü felugrókhoz" -#: gtk/gtkplacesview.c:2207 +#: gtk/gtkplacesview.c:2217 msgid "Loading" msgstr "Betöltés" -#: gtk/gtkplacesview.c:2208 +#: gtk/gtkplacesview.c:2218 msgid "Whether the view is loading locations" msgstr "A nézet helyeket tölt-e be" -#: gtk/gtkplacesview.c:2214 +#: gtk/gtkplacesview.c:2224 msgid "Fetching networks" msgstr "Hálózatok lekérése" -#: gtk/gtkplacesview.c:2215 +#: gtk/gtkplacesview.c:2225 msgid "Whether the view is fetching networks" msgstr "A nézet lekérje-e a hálózatokat" -#: gtk/gtkplacesviewrow.c:327 +#: gtk/gtkplacesviewrow.c:333 msgid "Icon of the row" msgstr "A sor ikonja" -#: gtk/gtkplacesviewrow.c:328 +#: gtk/gtkplacesviewrow.c:334 msgid "The icon representing the volume" msgstr "A kötetet ábrázoló ikon" -#: gtk/gtkplacesviewrow.c:334 +#: gtk/gtkplacesviewrow.c:340 msgid "Name of the volume" msgstr "A kötet neve" -#: gtk/gtkplacesviewrow.c:335 +#: gtk/gtkplacesviewrow.c:341 msgid "The name of the volume" msgstr "A kötet neve" -#: gtk/gtkplacesviewrow.c:341 +#: gtk/gtkplacesviewrow.c:347 msgid "Path of the volume" msgstr "A kötet elérési útja" -#: gtk/gtkplacesviewrow.c:342 +#: gtk/gtkplacesviewrow.c:348 msgid "The path of the volume" msgstr "A kötet elérési útja" -#: gtk/gtkplacesviewrow.c:348 +#: gtk/gtkplacesviewrow.c:354 msgid "Volume represented by the row" msgstr "A sor által képviselt kötet" -#: gtk/gtkplacesviewrow.c:349 +#: gtk/gtkplacesviewrow.c:355 msgid "The volume represented by the row" msgstr "A sor által képviselt kötet" -#: gtk/gtkplacesviewrow.c:355 +#: gtk/gtkplacesviewrow.c:361 msgid "Mount represented by the row" msgstr "A sor által képviselt csatolás" -#: gtk/gtkplacesviewrow.c:356 +#: gtk/gtkplacesviewrow.c:362 msgid "The mount point represented by the row, if any" msgstr "A sor által képviselt csatolási pont, ha van" -#: gtk/gtkplacesviewrow.c:362 +#: gtk/gtkplacesviewrow.c:368 msgid "File represented by the row" msgstr "A sor által képviselt kötet" -#: gtk/gtkplacesviewrow.c:363 +#: gtk/gtkplacesviewrow.c:369 msgid "The file represented by the row, if any" msgstr "A sor által képviselt fájl, ha van" -#: gtk/gtkplacesviewrow.c:369 gtk/gtkplacesviewrow.c:370 +#: gtk/gtkplacesviewrow.c:375 gtk/gtkplacesviewrow.c:376 msgid "Whether the row represents a network location" msgstr "A sor hálózati helyet képvisel-e" -#: gtk/gtkpopover.c:1609 +#: gtk/gtkpopover.c:1619 msgid "Relative to" msgstr "Ehhez viszonyítva" -#: gtk/gtkpopover.c:1610 +#: gtk/gtkpopover.c:1620 msgid "Widget the bubble window points to" msgstr "Felületi elem, amelyre a buborékablak mutat" -#: gtk/gtkpopover.c:1623 +#: gtk/gtkpopover.c:1631 msgid "Pointing to" msgstr "Erre mutatva" -#: gtk/gtkpopover.c:1624 +#: gtk/gtkpopover.c:1632 msgid "Rectangle the bubble window points to" msgstr "Téglalap, amelyre a buborékablak mutat" -#: gtk/gtkpopover.c:1638 +#: gtk/gtkpopover.c:1644 msgid "Position to place the bubble window" msgstr "Pozíció, ahova a buborékablak kerül" -#: gtk/gtkpopover.c:1653 +#: gtk/gtkpopover.c:1657 msgid "Whether the popover is modal" msgstr "A popover kizárólagos-e" -#: gtk/gtkpopover.c:1666 +#: gtk/gtkpopover.c:1668 msgid "Constraint" msgstr "Megszorítás" -#: gtk/gtkpopover.c:1667 +#: gtk/gtkpopover.c:1669 msgid "Constraint for the popover position" msgstr "A popover pozíciójához tartozó megszorítás" @@ -4300,7 +4485,7 @@ msgstr "Látható almenü" msgid "The name of the visible submenu" msgstr "A látható almenü neve" -#: gtk/gtkpopovermenu.c:364 +#: gtk/gtkpopovermenu.c:362 msgid "The name of the submenu" msgstr "Az almenü neve" @@ -4368,19 +4553,19 @@ msgstr "Feladatszám" msgid "Number of jobs queued in the printer" msgstr "A nyomtatón sorba állított feladatok száma" -#: gtk/gtkprinter.c:196 +#: gtk/gtkprinter.c:194 msgid "Paused Printer" msgstr "Nyomtató felfüggesztve" -#: gtk/gtkprinter.c:197 +#: gtk/gtkprinter.c:195 msgid "TRUE if this printer is paused" msgstr "Ha IGAZ, akkor a nyomtató fel van függesztve" -#: gtk/gtkprinter.c:210 +#: gtk/gtkprinter.c:206 msgid "Accepting Jobs" msgstr "Feladatok elfogadása" -#: gtk/gtkprinter.c:211 +#: gtk/gtkprinter.c:207 msgid "TRUE if this printer is accepting new jobs" msgstr "Ha IGAZ, akkor a nyomtató elfogad új feladatokat" @@ -4420,11 +4605,11 @@ msgstr "Beállítások" msgid "Printer settings" msgstr "Nyomtató beállításai" -#: gtk/gtkprintjob.c:159 gtk/gtkprintjob.c:160 gtk/gtkprintunixdialog.c:415 +#: gtk/gtkprintjob.c:159 gtk/gtkprintjob.c:160 gtk/gtkprintunixdialog.c:411 msgid "Page Setup" msgstr "Oldalbeállítás" -#: gtk/gtkprintjob.c:168 gtk/gtkprintoperation.c:1237 +#: gtk/gtkprintjob.c:168 gtk/gtkprintoperation.c:1200 msgid "Track Print Status" msgstr "Nyomtatási állapot követése" @@ -4437,51 +4622,51 @@ msgstr "" "nyomtatókiszolgálóra küldése után is folytatja az állapot megváltozott " "szignálok kibocsátását" -#: gtk/gtkprintoperation.c:1109 +#: gtk/gtkprintoperation.c:1084 msgid "Default Page Setup" msgstr "Alapértelmezett oldalbeállítás" -#: gtk/gtkprintoperation.c:1110 +#: gtk/gtkprintoperation.c:1085 msgid "The GtkPageSetup used by default" msgstr "Az alapértelmezetten használandó GtkPageSetup" -#: gtk/gtkprintoperation.c:1128 gtk/gtkprintunixdialog.c:433 +#: gtk/gtkprintoperation.c:1101 gtk/gtkprintunixdialog.c:429 msgid "Print Settings" msgstr "Nyomtatási beállítások" -#: gtk/gtkprintoperation.c:1129 gtk/gtkprintunixdialog.c:434 +#: gtk/gtkprintoperation.c:1102 gtk/gtkprintunixdialog.c:430 msgid "The GtkPrintSettings used for initializing the dialog" msgstr "A párbeszédablak előkészítésére használt GtkPrintSettings" -#: gtk/gtkprintoperation.c:1147 +#: gtk/gtkprintoperation.c:1118 msgid "Job Name" msgstr "Feladatnév" -#: gtk/gtkprintoperation.c:1148 +#: gtk/gtkprintoperation.c:1119 msgid "A string used for identifying the print job." msgstr "A nyomtatási feladat azonosítására használt karakterlánc" -#: gtk/gtkprintoperation.c:1172 +#: gtk/gtkprintoperation.c:1141 msgid "Number of Pages" msgstr "Oldalak száma" -#: gtk/gtkprintoperation.c:1173 +#: gtk/gtkprintoperation.c:1142 msgid "The number of pages in the document." msgstr "A dokumentum oldalainak száma" -#: gtk/gtkprintoperation.c:1194 gtk/gtkprintunixdialog.c:423 +#: gtk/gtkprintoperation.c:1161 gtk/gtkprintunixdialog.c:419 msgid "Current Page" msgstr "Jelenlegi oldal" -#: gtk/gtkprintoperation.c:1195 gtk/gtkprintunixdialog.c:424 +#: gtk/gtkprintoperation.c:1162 gtk/gtkprintunixdialog.c:420 msgid "The current page in the document" msgstr "A dokumentum jelenlegi oldala" -#: gtk/gtkprintoperation.c:1216 +#: gtk/gtkprintoperation.c:1181 msgid "Use full page" msgstr "Teljes oldal használata" -#: gtk/gtkprintoperation.c:1217 +#: gtk/gtkprintoperation.c:1182 msgid "" "TRUE if the origin of the context should be at the corner of the page and " "not the corner of the imageable area" @@ -4489,7 +4674,7 @@ msgstr "" "Ha IGAZ, akkor a környezet eredetének az oldal sarkában kell lennie és nem a " "leképezhető terület sarkában" -#: gtk/gtkprintoperation.c:1238 +#: gtk/gtkprintoperation.c:1201 msgid "" "TRUE if the print operation will continue to report on the print job status " "after the print data has been sent to the printer or print server." @@ -4498,153 +4683,153 @@ msgstr "" "jelentését a nyomtatási adatok nyomtatóra vagy nyomtatókiszolgálóra küldése " "után is" -#: gtk/gtkprintoperation.c:1255 +#: gtk/gtkprintoperation.c:1216 msgid "Unit" msgstr "Egység" -#: gtk/gtkprintoperation.c:1256 +#: gtk/gtkprintoperation.c:1217 msgid "The unit in which distances can be measured in the context" msgstr "A környezetben távolságok mérésére használt mértékegység" -#: gtk/gtkprintoperation.c:1273 +#: gtk/gtkprintoperation.c:1232 msgid "Show Dialog" msgstr "Párbeszédablak megjelenítése" -#: gtk/gtkprintoperation.c:1274 +#: gtk/gtkprintoperation.c:1233 msgid "TRUE if a progress dialog is shown while printing." msgstr "" "Ha IGAZ, akkor az előrehaladási párbeszédablak megjelenik nyomtatás közben" -#: gtk/gtkprintoperation.c:1297 +#: gtk/gtkprintoperation.c:1254 msgid "Allow Async" msgstr "Async engedélyezése" -#: gtk/gtkprintoperation.c:1298 +#: gtk/gtkprintoperation.c:1255 msgid "TRUE if print process may run asynchronous." msgstr "Ha IGAZ, akkor a nyomtatási folyamat futhat aszinkron módon" -#: gtk/gtkprintoperation.c:1320 gtk/gtkprintoperation.c:1321 +#: gtk/gtkprintoperation.c:1275 gtk/gtkprintoperation.c:1276 msgid "Export filename" msgstr "Fájlnév exportálása" -#: gtk/gtkprintoperation.c:1335 +#: gtk/gtkprintoperation.c:1288 msgid "Status" msgstr "Állapot" -#: gtk/gtkprintoperation.c:1336 +#: gtk/gtkprintoperation.c:1289 msgid "The status of the print operation" msgstr "A nyomtatási folyamat állapota" -#: gtk/gtkprintoperation.c:1356 +#: gtk/gtkprintoperation.c:1307 msgid "Status String" msgstr "Állapot-karakterlánc" -#: gtk/gtkprintoperation.c:1357 +#: gtk/gtkprintoperation.c:1308 msgid "A human-readable description of the status" msgstr "Az állapot emberek által olvasható leírása" -#: gtk/gtkprintoperation.c:1375 +#: gtk/gtkprintoperation.c:1324 msgid "Custom tab label" msgstr "Egyéni lapcímke" -#: gtk/gtkprintoperation.c:1376 +#: gtk/gtkprintoperation.c:1325 msgid "Label for the tab containing custom widgets." msgstr "Az egyéni felületi elemeket tartalmazó lap címkéje" -#: gtk/gtkprintoperation.c:1391 gtk/gtkprintunixdialog.c:458 +#: gtk/gtkprintoperation.c:1338 gtk/gtkprintunixdialog.c:454 msgid "Support Selection" msgstr "Kiválasztás támogatása" -#: gtk/gtkprintoperation.c:1392 +#: gtk/gtkprintoperation.c:1339 msgid "TRUE if the print operation will support print of selection." msgstr "" "Ha IGAZ, akkor a nyomtatási művelet támogatni fogja a kijelölés nyomtatását." -#: gtk/gtkprintoperation.c:1408 gtk/gtkprintunixdialog.c:466 +#: gtk/gtkprintoperation.c:1353 gtk/gtkprintunixdialog.c:462 msgid "Has Selection" msgstr "Van kijelölése" -#: gtk/gtkprintoperation.c:1409 +#: gtk/gtkprintoperation.c:1354 msgid "TRUE if a selection exists." msgstr "IGAZ, ha van kijelölés." -#: gtk/gtkprintoperation.c:1424 gtk/gtkprintunixdialog.c:474 +#: gtk/gtkprintoperation.c:1367 gtk/gtkprintunixdialog.c:470 msgid "Embed Page Setup" msgstr "Oldalbeállítás beágyazása" -#: gtk/gtkprintoperation.c:1425 gtk/gtkprintunixdialog.c:475 +#: gtk/gtkprintoperation.c:1368 gtk/gtkprintunixdialog.c:471 msgid "TRUE if page setup combos are embedded in GtkPrintUnixDialog" msgstr "" "Ha IGAZ, akkor a nyomtatási párbeszédablak tartalmazza az oldalbeállítási " "legördülő listákat" -#: gtk/gtkprintoperation.c:1446 +#: gtk/gtkprintoperation.c:1387 msgid "Number of Pages To Print" msgstr "Nyomtatandó oldalak száma" -#: gtk/gtkprintoperation.c:1447 +#: gtk/gtkprintoperation.c:1388 msgid "The number of pages that will be printed." msgstr "A nyomtatásra kerülő oldalak száma." -#: gtk/gtkprintunixdialog.c:416 +#: gtk/gtkprintunixdialog.c:412 msgid "The GtkPageSetup to use" msgstr "A használandó GtkPageSetup" -#: gtk/gtkprintunixdialog.c:441 +#: gtk/gtkprintunixdialog.c:437 msgid "Selected Printer" msgstr "Kiválasztott nyomtató" -#: gtk/gtkprintunixdialog.c:442 +#: gtk/gtkprintunixdialog.c:438 msgid "The GtkPrinter which is selected" msgstr "A kijelölt GtkPrinter" -#: gtk/gtkprintunixdialog.c:449 +#: gtk/gtkprintunixdialog.c:445 msgid "Manual Capabilities" msgstr "Kézi képességek" -#: gtk/gtkprintunixdialog.c:450 +#: gtk/gtkprintunixdialog.c:446 msgid "Capabilities the application can handle" msgstr "Az alkalmazás által kezelhető képességek" -#: gtk/gtkprintunixdialog.c:459 +#: gtk/gtkprintunixdialog.c:455 msgid "Whether the dialog supports selection" msgstr "A párbeszédablak támogatja-e a kijelölést?" -#: gtk/gtkprintunixdialog.c:467 +#: gtk/gtkprintunixdialog.c:463 msgid "Whether the application has a selection" msgstr "Az alkalmazásban van-e kijelölés?" -#: gtk/gtkprogressbar.c:199 +#: gtk/gtkprogressbar.c:197 msgid "Fraction" msgstr "Tört" -#: gtk/gtkprogressbar.c:200 +#: gtk/gtkprogressbar.c:198 msgid "The fraction of total work that has been completed" msgstr "A teljes munka elvégzett része törtként" -#: gtk/gtkprogressbar.c:207 +#: gtk/gtkprogressbar.c:205 msgid "Pulse Step" msgstr "Pulzuslépés" -#: gtk/gtkprogressbar.c:208 +#: gtk/gtkprogressbar.c:206 msgid "The fraction of total progress to move the bouncing block when pulsed" msgstr "" "A teljes munka elvégzett része törtként a pattogó tégla mozgatásához pulzus " "módban" -#: gtk/gtkprogressbar.c:216 +#: gtk/gtkprogressbar.c:214 msgid "Text to be displayed in the progress bar" msgstr "A folyamatjelzőben megjelenítendő szöveg" -#: gtk/gtkprogressbar.c:237 +#: gtk/gtkprogressbar.c:233 msgid "Show text" msgstr "Szöveg megjelenítése" -#: gtk/gtkprogressbar.c:238 +#: gtk/gtkprogressbar.c:234 msgid "Whether the progress is shown as text." msgstr "A folyamat megjelenjen-e szövegként." -#: gtk/gtkprogressbar.c:259 +#: gtk/gtkprogressbar.c:253 msgid "" "The preferred place to ellipsize the string, if the progress bar does not " "have enough room to display the entire string, if at all." @@ -4652,352 +4837,267 @@ msgstr "" "A karakterlánc kihagyásainak preferált módja, ha a folyamatjelzőnek nincs " "elég helye a karakterlánc teljes megjelenítésére." -#: gtk/gtkradiobutton.c:184 gtk/gtkradiomenuitem.c:423 -#: gtk/gtkradiotoolbutton.c:83 +#: gtk/gtkradiobutton.c:183 gtk/gtkradiomenuitem.c:415 +#: gtk/gtkradiotoolbutton.c:81 msgid "Group" msgstr "Csoport" -#: gtk/gtkradiobutton.c:185 +#: gtk/gtkradiobutton.c:184 msgid "The radio button whose group this widget belongs to." msgstr "A választógomb, amelynek a csoportjához ez a felületi elem tartozik." -#: gtk/gtkradiomenuitem.c:424 +#: gtk/gtkradiomenuitem.c:416 msgid "The radio menu item whose group this widget belongs to." msgstr "" "A választómenü-elem, amelynek a csoportjához ez a felületi elem tartozik" -#: gtk/gtkradiotoolbutton.c:84 +#: gtk/gtkradiotoolbutton.c:82 msgid "The radio tool button whose group this button belongs to." msgstr "Az a rádiógomb, amely csoportjához ez a gomb tartozik." -#: gtk/gtkrange.c:385 +#: gtk/gtkrange.c:373 msgid "The GtkAdjustment that contains the current value of this range object" msgstr "A tartományobjektum aktuális értékét tartalmazó GtkAdjustment" -#: gtk/gtkrange.c:392 +#: gtk/gtkrange.c:380 msgid "Invert direction slider moves to increase range value" msgstr "Csúszka irányának megfordítása a tartományérték növeléséhez" -#: gtk/gtkrange.c:407 +#: gtk/gtkrange.c:393 msgid "Show Fill Level" msgstr "Kitöltési szint megjelenítése" -#: gtk/gtkrange.c:408 +#: gtk/gtkrange.c:394 msgid "Whether to display a fill level indicator graphics on trough." msgstr "A vályúban megjelenítendő-e kitöltésszint-jelző." -#: gtk/gtkrange.c:423 +#: gtk/gtkrange.c:407 msgid "Restrict to Fill Level" msgstr "Korlátozás a kitöltési szintre" -#: gtk/gtkrange.c:424 +#: gtk/gtkrange.c:408 msgid "Whether to restrict the upper boundary to the fill level." msgstr "A felső szegély korlátozása a kitöltési szintre." -#: gtk/gtkrange.c:438 +#: gtk/gtkrange.c:420 msgid "Fill Level" msgstr "Kitöltési szint" -#: gtk/gtkrange.c:439 +#: gtk/gtkrange.c:421 msgid "The fill level." msgstr "A kitöltés szintje." -#: gtk/gtkrange.c:454 +#: gtk/gtkrange.c:434 msgid "Round Digits" msgstr "Kerekítési számjegyek" -#: gtk/gtkrange.c:455 +#: gtk/gtkrange.c:435 msgid "The number of digits to round the value to." msgstr "Az érték kerekítése ennyi számjegyre." -#: gtk/gtkrecentchooser.c:117 -msgid "Recent Manager" -msgstr "Előzménykezelő" - -#: gtk/gtkrecentchooser.c:118 -msgid "The RecentManager object to use" -msgstr "A használandó RecentManager objektum" - -#: gtk/gtkrecentchooser.c:133 -msgid "Show Private" -msgstr "Privát megjelenítése" - -#: gtk/gtkrecentchooser.c:134 -msgid "Whether the private items should be displayed" -msgstr "A privát elemek megjelenítésre kerüljenek-e" - -#: gtk/gtkrecentchooser.c:148 -msgid "Show Tooltips" -msgstr "Buboréksúgók megjelenítése" - -#: gtk/gtkrecentchooser.c:149 -msgid "Whether there should be a tooltip on the item" -msgstr "Az elem buboréksúgója meg legyen-e jelenítve" - -#: gtk/gtkrecentchooser.c:162 -msgid "Show Icons" -msgstr "Ikonok megjelenítése" - -#: gtk/gtkrecentchooser.c:163 -msgid "Whether there should be an icon near the item" -msgstr "Megjelenjen-e ikon az elem közelében" - -#: gtk/gtkrecentchooser.c:179 -msgid "Show Not Found" -msgstr "Nem találhatók megjelenítése" - -#: gtk/gtkrecentchooser.c:180 -msgid "Whether the items pointing to unavailable resources should be displayed" -msgstr "" -"Megjelenítésre kerüljenek-e az el nem érhető erőforrásokra mutató elemek" - -#: gtk/gtkrecentchooser.c:194 -msgid "Whether to allow multiple items to be selected" -msgstr "Lehet-e egyszerre több elemet kijelölni" - -#: gtk/gtkrecentchooser.c:208 -msgid "Local only" -msgstr "Csak helyi" - -#: gtk/gtkrecentchooser.c:209 -msgid "Whether the selected resource(s) should be limited to local file: URIs" -msgstr "A kijelölt erőforrások csak helyi file: URI-címek lehetnek-e" - -#: gtk/gtkrecentchooser.c:223 -msgid "Limit" -msgstr "Korlátozás" - -#: gtk/gtkrecentchooser.c:224 -msgid "The maximum number of items to be displayed" -msgstr "A megjelenítendő elemek legnagyobb száma" - -#: gtk/gtkrecentchooser.c:237 -msgid "Sort Type" -msgstr "Rendezés típusa" - -#: gtk/gtkrecentchooser.c:238 -msgid "The sorting order of the items displayed" -msgstr "A megjelenített elemek rendezési sorrendje" - -#: gtk/gtkrecentchooser.c:254 -msgid "The current filter for selecting which resources are displayed" -msgstr "A megjelenítendő erőforrások kiválasztására használt aktuális szűrő" - -#: gtk/gtkrecentchoosermenu.c:216 -msgid "Show Numbers" -msgstr "Számok megjelenítése" - -#: gtk/gtkrecentchoosermenu.c:217 -msgid "Whether the items should be displayed with a number" -msgstr "Az elemek egy számmal együtt kerüljenek-e megjelenítésre" - -#: gtk/gtkrecentmanager.c:290 +#: gtk/gtkrecentmanager.c:283 msgid "The full path to the file to be used to store and read the list" msgstr "A lista tárolására és beolvasására használandó fájl teljes útvonala" -#: gtk/gtkrecentmanager.c:305 +#: gtk/gtkrecentmanager.c:296 msgid "The size of the recently used resources list" msgstr "A legutóbb használt erőforrások listájának mérete" -#: gtk/gtkrevealer.c:236 gtk/gtkstack.c:366 +#: gtk/gtkrevealer.c:235 gtk/gtkstack.c:361 msgid "Transition type" msgstr "Átmenet típusa" -#: gtk/gtkrevealer.c:237 gtk/gtkstack.c:366 +#: gtk/gtkrevealer.c:236 gtk/gtkstack.c:361 msgid "The type of animation used to transition" msgstr "Az átmenethez használt animáció típusa" -#: gtk/gtkrevealer.c:244 gtk/gtkstack.c:362 +#: gtk/gtkrevealer.c:243 gtk/gtkstack.c:357 msgid "Transition duration" msgstr "Átmenet hossza" -#: gtk/gtkrevealer.c:245 gtk/gtkstack.c:362 +#: gtk/gtkrevealer.c:244 gtk/gtkstack.c:357 msgid "The animation duration, in milliseconds" msgstr "Az animáció hossza ezredmásodpercben" -#: gtk/gtkrevealer.c:251 +#: gtk/gtkrevealer.c:250 msgid "Reveal Child" msgstr "Gyermek megjelenítése" -#: gtk/gtkrevealer.c:252 +#: gtk/gtkrevealer.c:251 msgid "Whether the container should reveal the child" msgstr "A konténer megjelenítse-e a gyermeket" -#: gtk/gtkrevealer.c:258 +#: gtk/gtkrevealer.c:257 msgid "Child Revealed" msgstr "Gyermek megjelenítve" -#: gtk/gtkrevealer.c:259 +#: gtk/gtkrevealer.c:258 msgid "Whether the child is revealed and the animation target reached" msgstr "A gyermek megjelent-e, és az animáció célja el van-e érve" -#: gtk/gtkscalebutton.c:197 +#: gtk/gtkscalebutton.c:199 msgid "The value of the scale" msgstr "A méretezés értéke" -#: gtk/gtkscalebutton.c:207 -msgid "The icon size" -msgstr "Az ikon mérete" - -#: gtk/gtkscalebutton.c:216 +#: gtk/gtkscalebutton.c:209 msgid "" "The GtkAdjustment that contains the current value of this scale button object" msgstr "A méretezőgomb-objektum aktuális értékét tartalmazó GtkAdjustment" -#: gtk/gtkscalebutton.c:244 +#: gtk/gtkscalebutton.c:235 msgid "Icons" msgstr "Ikonok" -#: gtk/gtkscalebutton.c:245 +#: gtk/gtkscalebutton.c:236 msgid "List of icon names" msgstr "Ikonnevek listája" -#: gtk/gtkscale.c:710 +#: gtk/gtkscale.c:705 msgid "The number of decimal places that are displayed in the value" msgstr "A értékben megjelenített tizedesjegyek száma" -#: gtk/gtkscale.c:717 +#: gtk/gtkscale.c:712 msgid "Draw Value" msgstr "Rajzérték" -#: gtk/gtkscale.c:718 +#: gtk/gtkscale.c:713 msgid "Whether the current value is displayed as a string next to the slider" msgstr "" "Az aktuális érték karakterláncként megjelenítésre kerüljön-e a csúszka " "mellett" -#: gtk/gtkscale.c:724 +#: gtk/gtkscale.c:719 msgid "Has Origin" msgstr "Van eredete" -#: gtk/gtkscale.c:725 +#: gtk/gtkscale.c:720 msgid "Whether the scale has an origin" msgstr "A méretező rendelkezik-e eredettel" -#: gtk/gtkscale.c:731 +#: gtk/gtkscale.c:726 msgid "Value Position" msgstr "Érték pozíciója" -#: gtk/gtkscale.c:732 +#: gtk/gtkscale.c:727 msgid "The position in which the current value is displayed" msgstr "A pozíció, ahol az aktuális érték megjelenítésre kerül" -#: gtk/gtkscrollable.c:77 +#: gtk/gtkscrollable.c:75 msgid "Horizontal adjustment" msgstr "Vízszintes igazítás" -#: gtk/gtkscrollable.c:78 +#: gtk/gtkscrollable.c:76 msgid "" "Horizontal adjustment that is shared between the scrollable widget and its " "controller" msgstr "" "A görgethető felületi elem és vezérlője között megosztott vízszintes igazítás" -#: gtk/gtkscrollable.c:94 +#: gtk/gtkscrollable.c:90 msgid "Vertical adjustment" msgstr "Függőleges igazítás" -#: gtk/gtkscrollable.c:95 +#: gtk/gtkscrollable.c:91 msgid "" "Vertical adjustment that is shared between the scrollable widget and its " "controller" msgstr "" "A görgethető felületi elem és vezérlője között megosztott függőleges igazítás" -#: gtk/gtkscrollable.c:111 +#: gtk/gtkscrollable.c:105 msgid "Horizontal Scrollable Policy" msgstr "Vízszintes görgethető irányelve" -#: gtk/gtkscrollable.c:112 gtk/gtkscrollable.c:128 +#: gtk/gtkscrollable.c:106 gtk/gtkscrollable.c:120 msgid "How the size of the content should be determined" msgstr "Hogyan határozandó meg a tartalom mérete" -#: gtk/gtkscrollable.c:127 +#: gtk/gtkscrollable.c:119 msgid "Vertical Scrollable Policy" msgstr "Függőleges görgethető irányelve" -#: gtk/gtkscrollbar.c:224 +#: gtk/gtkscrollbar.c:223 msgid "The GtkAdjustment that contains the current value of this scrollbar" msgstr "A görgetősáv aktuális értékét tartalmazó GtkAdjustment" -#: gtk/gtkscrolledwindow.c:530 +#: gtk/gtkscrolledwindow.c:540 msgid "Horizontal Adjustment" msgstr "Vízszintes igazítás" -#: gtk/gtkscrolledwindow.c:531 +#: gtk/gtkscrolledwindow.c:541 msgid "The GtkAdjustment for the horizontal position" msgstr "A vízszintes pozícióhoz tartozó GtkAdjustment" -#: gtk/gtkscrolledwindow.c:537 +#: gtk/gtkscrolledwindow.c:547 msgid "Vertical Adjustment" msgstr "Függőleges igazítás" -#: gtk/gtkscrolledwindow.c:538 +#: gtk/gtkscrolledwindow.c:548 msgid "The GtkAdjustment for the vertical position" msgstr "A függőleges pozícióhoz tartozó GtkAdjustment" -#: gtk/gtkscrolledwindow.c:544 +#: gtk/gtkscrolledwindow.c:554 msgid "Horizontal Scrollbar Policy" msgstr "Vízszintes görgetősáv irányelv" -#: gtk/gtkscrolledwindow.c:545 +#: gtk/gtkscrolledwindow.c:555 msgid "When the horizontal scrollbar is displayed" msgstr "Mikor kerüljön megjelenítésre a vízszintes görgetősáv" -#: gtk/gtkscrolledwindow.c:552 +#: gtk/gtkscrolledwindow.c:562 msgid "Vertical Scrollbar Policy" msgstr "Függőleges görgetősáv irányelv" -#: gtk/gtkscrolledwindow.c:553 +#: gtk/gtkscrolledwindow.c:563 msgid "When the vertical scrollbar is displayed" msgstr "Mikor kerüljön megjelenítésre a függőleges görgetősáv" -#: gtk/gtkscrolledwindow.c:560 +#: gtk/gtkscrolledwindow.c:570 msgid "Window Placement" msgstr "Ablak elhelyezése" -#: gtk/gtkscrolledwindow.c:561 +#: gtk/gtkscrolledwindow.c:571 msgid "Where the contents are located with respect to the scrollbars." msgstr "Hol legyen a tartalom a görgetősávokhoz képest." -#: gtk/gtkscrolledwindow.c:568 +#: gtk/gtkscrolledwindow.c:578 msgid "Shadow Type" msgstr "Árnyéktípus" -#: gtk/gtkscrolledwindow.c:569 +#: gtk/gtkscrolledwindow.c:579 msgid "Style of bevel around the contents" msgstr "A tartalom körüli élkidolgozás stílusa" -#: gtk/gtkscrolledwindow.c:583 +#: gtk/gtkscrolledwindow.c:591 msgid "Minimum Content Width" msgstr "Legkisebb tartalomszélesség" -#: gtk/gtkscrolledwindow.c:584 +#: gtk/gtkscrolledwindow.c:592 msgid "The minimum width that the scrolled window will allocate to its content" msgstr "A görgetett ablak által a tartalomnak lefoglalandó legkisebb szélesség" -#: gtk/gtkscrolledwindow.c:597 +#: gtk/gtkscrolledwindow.c:603 msgid "Minimum Content Height" msgstr "Legkisebb tartalommagasság" -#: gtk/gtkscrolledwindow.c:598 +#: gtk/gtkscrolledwindow.c:604 msgid "" "The minimum height that the scrolled window will allocate to its content" msgstr "A görgetett ablak által a tartalomnak lefoglalandó legkisebb magasság" -#: gtk/gtkscrolledwindow.c:612 +#: gtk/gtkscrolledwindow.c:616 msgid "Kinetic Scrolling" msgstr "Kinetikus görgetés" -#: gtk/gtkscrolledwindow.c:613 +#: gtk/gtkscrolledwindow.c:617 msgid "Kinetic scrolling mode." msgstr "Kinetikus görgetés mód." -#: gtk/gtkscrolledwindow.c:629 +#: gtk/gtkscrolledwindow.c:631 msgid "Overlay Scrolling" msgstr "Átfedő görgetés" -#: gtk/gtkscrolledwindow.c:630 +#: gtk/gtkscrolledwindow.c:632 msgid "Overlay scrolling mode" msgstr "Átfedő görgetés mód." @@ -5010,48 +5110,48 @@ msgid "The maximum width that the scrolled window will allocate to its content" msgstr "" "A görgetett ablak által a tartalomnak lefoglalandó legnagyobb szélesség" -#: gtk/gtkscrolledwindow.c:657 +#: gtk/gtkscrolledwindow.c:655 msgid "Maximum Content Height" msgstr "Legnagyobb tartalommagasság" -#: gtk/gtkscrolledwindow.c:658 +#: gtk/gtkscrolledwindow.c:656 msgid "" "The maximum height that the scrolled window will allocate to its content" msgstr "A görgetett ablak által a tartalomnak lefoglalandó legnagyobb magasság" -#: gtk/gtkscrolledwindow.c:675 gtk/gtkscrolledwindow.c:676 +#: gtk/gtkscrolledwindow.c:671 gtk/gtkscrolledwindow.c:672 msgid "Propagate Natural Width" msgstr "Természetes szélesség propagálása" -#: gtk/gtkscrolledwindow.c:693 gtk/gtkscrolledwindow.c:694 +#: gtk/gtkscrolledwindow.c:687 gtk/gtkscrolledwindow.c:688 msgid "Propagate Natural Height" msgstr "Természetes magasság propagálása" -#: gtk/gtksearchbar.c:386 +#: gtk/gtksearchbar.c:430 msgid "Search Mode Enabled" msgstr "Keresés mód engedélyezve" -#: gtk/gtksearchbar.c:387 +#: gtk/gtksearchbar.c:431 msgid "Whether the search mode is on and the search bar shown" msgstr "A keresés mód be van-e kapcsolva, és a keresősáv látható-e" -#: gtk/gtksearchbar.c:398 +#: gtk/gtksearchbar.c:442 msgid "Whether to show the close button in the toolbar" msgstr "Megjelenjen-e a bezárás gomb az eszköztáron" -#: gtk/gtkseparatortoolitem.c:99 +#: gtk/gtkseparatortoolitem.c:94 msgid "Draw" msgstr "Rajzolás" -#: gtk/gtkseparatortoolitem.c:100 +#: gtk/gtkseparatortoolitem.c:95 msgid "Whether the separator is drawn, or just blank" msgstr "Az elválasztó legyen-e kirajzolva, vagy csak legyen üres" -#: gtk/gtksettings.c:351 +#: gtk/gtksettings.c:339 msgid "Double Click Time" msgstr "Dupla kattintás ideje" -#: gtk/gtksettings.c:352 +#: gtk/gtksettings.c:340 msgid "" "Maximum time allowed between two clicks for them to be considered a double " "click (in milliseconds)" @@ -5059,11 +5159,11 @@ msgstr "" "Két kattintás közötti maximális idő, amely még dupla kattintásnak tekintendő " "(ezredmásodpercben)" -#: gtk/gtksettings.c:359 +#: gtk/gtksettings.c:347 msgid "Double Click Distance" msgstr "Dupla kattintás távolsága" -#: gtk/gtksettings.c:360 +#: gtk/gtksettings.c:348 msgid "" "Maximum distance allowed between two clicks for them to be considered a " "double click (in pixels)" @@ -5071,35 +5171,35 @@ msgstr "" "Két kattintás közötti maximális távolság, amely még dupla kattintásnak " "tekintendő (képpontban)" -#: gtk/gtksettings.c:376 +#: gtk/gtksettings.c:364 msgid "Cursor Blink" msgstr "Villogó kurzor" -#: gtk/gtksettings.c:377 +#: gtk/gtksettings.c:365 msgid "Whether the cursor should blink" msgstr "A kurzor villogjon-e" -#: gtk/gtksettings.c:384 +#: gtk/gtksettings.c:372 msgid "Cursor Blink Time" msgstr "Kurzor villogási ideje" -#: gtk/gtksettings.c:385 +#: gtk/gtksettings.c:373 msgid "Length of the cursor blink cycle, in milliseconds" msgstr "A kurzor villogási ciklusának hossza ezredmásodpercben" -#: gtk/gtksettings.c:404 +#: gtk/gtksettings.c:390 msgid "Cursor Blink Timeout" msgstr "Kurzor villogási időkorlátja" -#: gtk/gtksettings.c:405 +#: gtk/gtksettings.c:391 msgid "Time after which the cursor stops blinking, in seconds" msgstr "A kurzor ennyi másodperc után befejezi a villogást" -#: gtk/gtksettings.c:412 +#: gtk/gtksettings.c:398 msgid "Split Cursor" msgstr "Kurzor szétvágása" -#: gtk/gtksettings.c:413 +#: gtk/gtksettings.c:399 msgid "" "Whether two cursors should be displayed for mixed left-to-right and right-to-" "left text" @@ -5107,135 +5207,127 @@ msgstr "" "Legyen-e két külön kurzor megjelenítve a balról jobbra és jobbról balra " "olvasandó szövegeket vegyesen tartalmazó szövegben" -#: gtk/gtksettings.c:420 +#: gtk/gtksettings.c:406 msgid "Theme Name" msgstr "Téma neve" -#: gtk/gtksettings.c:421 +#: gtk/gtksettings.c:407 msgid "Name of theme to load" msgstr "A betöltendő téma neve" -#: gtk/gtksettings.c:429 +#: gtk/gtksettings.c:415 msgid "Icon Theme Name" msgstr "Ikontéma neve" -#: gtk/gtksettings.c:430 +#: gtk/gtksettings.c:416 msgid "Name of icon theme to use" msgstr "A használni kívánt ikontéma neve." -#: gtk/gtksettings.c:438 +#: gtk/gtksettings.c:424 msgid "Key Theme Name" msgstr "Billentyűtéma neve" -#: gtk/gtksettings.c:439 +#: gtk/gtksettings.c:425 msgid "Name of key theme to load" msgstr "A betöltendő billentyűtéma neve" -#: gtk/gtksettings.c:447 +#: gtk/gtksettings.c:433 msgid "Drag threshold" msgstr "Húzási küszöb" -#: gtk/gtksettings.c:448 +#: gtk/gtksettings.c:434 msgid "Number of pixels the cursor can move before dragging" msgstr "" "Hány képpontnyi távolságot mozoghat el a kurzor a húzás megkezdése előtt" -#: gtk/gtksettings.c:461 +#: gtk/gtksettings.c:447 msgid "Font Name" msgstr "Betűkészlet neve" -#: gtk/gtksettings.c:462 +#: gtk/gtksettings.c:448 msgid "The default font family and size to use" msgstr "Az alapértelmezett betűcsalád és méret" -#: gtk/gtksettings.c:470 -msgid "GTK Modules" -msgstr "GTK-modulok" - -#: gtk/gtksettings.c:471 -msgid "List of currently active GTK modules" -msgstr "Az éppen aktív GTK-modulok listája" - -#: gtk/gtksettings.c:479 +#: gtk/gtksettings.c:456 msgid "Xft Antialias" msgstr "Xft élsimítás" -#: gtk/gtksettings.c:480 +#: gtk/gtksettings.c:457 msgid "Whether to antialias Xft fonts; 0=no, 1=yes, -1=default" msgstr "" "Szükséges-e az Xft betűkészletek élsimítása; 0=nem, 1=igen, -1=alapértelmezés" -#: gtk/gtksettings.c:489 +#: gtk/gtksettings.c:466 msgid "Xft Hinting" msgstr "Xft hinting" -#: gtk/gtksettings.c:490 +#: gtk/gtksettings.c:467 msgid "Whether to hint Xft fonts; 0=no, 1=yes, -1=default" msgstr "" "A hinting (raszterizálási segítség) funkció bekapcsolása Xft " "betűkészleteken; 0=nem, 1=igen, -1=alapértelmezés" -#: gtk/gtksettings.c:499 +#: gtk/gtksettings.c:476 msgid "Xft Hint Style" msgstr "Xft hinting stílus" -#: gtk/gtksettings.c:500 +#: gtk/gtksettings.c:477 msgid "" "What degree of hinting to use; hintnone, hintslight, hintmedium, or hintfull" msgstr "" "Milyen szintű hinting kerüljön alkalmazásra: semennyi, kevés, közepes vagy " "teljes" -#: gtk/gtksettings.c:509 +#: gtk/gtksettings.c:486 msgid "Xft RGBA" msgstr "Xft RGBA" -#: gtk/gtksettings.c:510 +#: gtk/gtksettings.c:487 msgid "Type of subpixel antialiasing; none, rgb, bgr, vrgb, vbgr" msgstr "A képpontrész szintű élsimítás típusa: nincs, rgb, bgr, vrgb, vbgr" -#: gtk/gtksettings.c:519 +#: gtk/gtksettings.c:496 msgid "Xft DPI" msgstr "Xft DPI" -#: gtk/gtksettings.c:520 +#: gtk/gtksettings.c:497 msgid "Resolution for Xft, in 1024 * dots/inch. -1 to use default value" msgstr "" "Xft felbontás, 1024 * pont/hüvelyk értékként megadva; -1 az alapértelmezett " "érték használatához" -#: gtk/gtksettings.c:529 +#: gtk/gtksettings.c:506 msgid "Cursor theme name" msgstr "Kurzortéma neve" -#: gtk/gtksettings.c:530 +#: gtk/gtksettings.c:507 msgid "Name of the cursor theme to use, or NULL to use the default theme" msgstr "" "A használni kívánt kurzortéma neve, vagy NULL az alapértelmezett téma " "használatához" -#: gtk/gtksettings.c:538 +#: gtk/gtksettings.c:515 msgid "Cursor theme size" msgstr "Kurzortéma mérete" -#: gtk/gtksettings.c:539 +#: gtk/gtksettings.c:516 msgid "Size to use for cursors, or 0 to use the default size" msgstr "" "A kurzorokhoz használt méret vagy 0 az alapértelmezett méret használatához" -#: gtk/gtksettings.c:548 +#: gtk/gtksettings.c:525 msgid "Alternative button order" msgstr "Alternatív gombsorrend" -#: gtk/gtksettings.c:549 +#: gtk/gtksettings.c:526 msgid "Whether buttons in dialogs should use the alternative button order" msgstr "A párbeszédablak gombjai az alternatív gombsorrendet használják-e" -#: gtk/gtksettings.c:566 +#: gtk/gtksettings.c:541 msgid "Alternative sort indicator direction" msgstr "Alternatív rendezésjelző-irány" -#: gtk/gtksettings.c:567 +#: gtk/gtksettings.c:542 msgid "" "Whether the direction of the sort indicators in list and tree views is " "inverted compared to the default (where down means ascending)" @@ -5243,145 +5335,145 @@ msgstr "" "A lista- és fanézetek rendezésjelzőinek iránya fordított-e az " "alapértelmezéshez (növekvő) képest." -#: gtk/gtksettings.c:575 +#: gtk/gtksettings.c:550 msgid "Enable Animations" msgstr "Animációk bekapcsolása" -#: gtk/gtksettings.c:576 +#: gtk/gtksettings.c:551 msgid "Whether to enable toolkit-wide animations." msgstr "Eszközkészlet szintű animációk engedélyezése" -#: gtk/gtksettings.c:596 +#: gtk/gtksettings.c:569 msgid "Error Bell" msgstr "Hibacsengő" -#: gtk/gtksettings.c:597 +#: gtk/gtksettings.c:570 msgid "When TRUE, keyboard navigation and other errors will cause a beep" msgstr "" "Ha IGAZ, akkor a billentyűnavigációs és egyéb hibák hangjelzést okoznak" -#: gtk/gtksettings.c:615 +#: gtk/gtksettings.c:586 msgid "Default print backend" msgstr "Alapértelmezett nyomtatási háttérprogram" -#: gtk/gtksettings.c:616 +#: gtk/gtksettings.c:587 msgid "List of the GtkPrintBackend backends to use by default" msgstr "" "Az alapértelmezés szerint használandó GtkPrintBackend háttérprogramok listája" -#: gtk/gtksettings.c:639 +#: gtk/gtksettings.c:608 msgid "Default command to run when displaying a print preview" msgstr "" "Nyomtatási előnézet megjelenítésekor futtatandó alapértelmezett parancs" -#: gtk/gtksettings.c:640 +#: gtk/gtksettings.c:609 msgid "Command to run when displaying a print preview" msgstr "Nyomtatási előnézet megjelenítésekor futtatandó parancs" -#: gtk/gtksettings.c:656 +#: gtk/gtksettings.c:623 msgid "Enable Accelerators" msgstr "Gyorsbillentyűk engedélyezése" -#: gtk/gtksettings.c:657 +#: gtk/gtksettings.c:624 msgid "Whether menu items should have accelerators" msgstr "A menüelemek rendelkezzenek-e gyorsbillentyűkkel" -#: gtk/gtksettings.c:676 +#: gtk/gtksettings.c:643 msgid "Default IM module" msgstr "Alapértelmezett beviteli modul" -#: gtk/gtksettings.c:677 +#: gtk/gtksettings.c:644 msgid "Which IM module should be used by default" msgstr "Az alapértelmezetten használandó beviteli modul" -#: gtk/gtksettings.c:695 +#: gtk/gtksettings.c:660 msgid "Recent Files Max Age" msgstr "Legutóbbi fájlok maximális kora" -#: gtk/gtksettings.c:696 +#: gtk/gtksettings.c:661 msgid "Maximum age of recently used files, in days" msgstr "A legutóbb használt fájlok maximális kora napokban" -#: gtk/gtksettings.c:705 +#: gtk/gtksettings.c:670 msgid "Fontconfig configuration timestamp" msgstr "Fontconfig konfigurációs időbélyeg" -#: gtk/gtksettings.c:706 +#: gtk/gtksettings.c:671 msgid "Timestamp of current fontconfig configuration" msgstr "A jelenlegi Fontconfig konfiguráció időbélyege" -#: gtk/gtksettings.c:728 +#: gtk/gtksettings.c:691 msgid "Sound Theme Name" msgstr "Hangtéma neve" -#: gtk/gtksettings.c:729 +#: gtk/gtksettings.c:692 msgid "XDG sound theme name" msgstr "XDG hangtéma neve" #. Translators: this means sounds that are played as feedback to user input -#: gtk/gtksettings.c:751 +#: gtk/gtksettings.c:712 msgid "Audible Input Feedback" msgstr "Hallható bemenet-visszajelzés" -#: gtk/gtksettings.c:752 +#: gtk/gtksettings.c:713 msgid "Whether to play event sounds as feedback to user input" msgstr "Lejátszandók-e eseményhangok a felhasználói adatbevitelre válaszul" -#: gtk/gtksettings.c:773 +#: gtk/gtksettings.c:732 msgid "Enable Event Sounds" msgstr "Eseményhangok bekapcsolása" -#: gtk/gtksettings.c:774 +#: gtk/gtksettings.c:733 msgid "Whether to play any event sounds at all" msgstr "Lejátszásra kerüljenek-e az eseményhangok" -#: gtk/gtksettings.c:790 +#: gtk/gtksettings.c:753 msgid "Primary button warps slider" msgstr "Elsődleges gomb ugratja a csúszkát" -#: gtk/gtksettings.c:791 +#: gtk/gtksettings.c:754 msgid "" "Whether a primary click on the trough should warp the slider into position" msgstr "" "Az elsődleges kattintás a vályún az adott pozícióba ugratja-e a csúszkát." -#: gtk/gtksettings.c:816 +#: gtk/gtksettings.c:777 msgid "Application prefers a dark theme" msgstr "Az alkalmazás a sötét témát kedveli" -#: gtk/gtksettings.c:817 +#: gtk/gtksettings.c:778 msgid "Whether the application prefers to have a dark theme." msgstr "Az alkalmazás a sötét témát kedveli-e?" -#: gtk/gtksettings.c:825 gtk/gtksettings.c:853 +#: gtk/gtksettings.c:786 gtk/gtksettings.c:812 msgid "Select on focus" msgstr "Kijelölés fókusz esetén" -#: gtk/gtksettings.c:826 +#: gtk/gtksettings.c:787 msgid "Whether to select the contents of an entry when it is focused" msgstr "" "Kijelölésre kerüljön-e a bejegyzés tartalma a fókusz megszerzése esetén" -#: gtk/gtksettings.c:843 +#: gtk/gtksettings.c:802 msgid "Password Hint Timeout" msgstr "Jelszótipp időtúllépése" -#: gtk/gtksettings.c:844 +#: gtk/gtksettings.c:803 msgid "How long to show the last input character in hidden entries" msgstr "" "Meddig jelenjen meg az utoljára bevitt karakter a rejtett bejegyzésekben" -#: gtk/gtksettings.c:854 +#: gtk/gtksettings.c:813 msgid "Whether to select the contents of a selectable label when it is focused" msgstr "" "Kijelölésre kerüljön-e a kiválasztható címke tartalma a fókusz megszerzése " "esetén" -#: gtk/gtksettings.c:862 +#: gtk/gtksettings.c:821 msgid "Desktop shell shows app menu" msgstr "Az asztali héj jeleníti meg az alkalmazásmenüt" -#: gtk/gtksettings.c:863 +#: gtk/gtksettings.c:822 msgid "" "Set to TRUE if the desktop environment is displaying the app menu, FALSE if " "the app should display it itself." @@ -5389,11 +5481,11 @@ msgstr "" "Állítsa IGAZ-ra, ha az asztali környezet jeleníti meg az alkalmazásmenüt, " "HAMIS-ra ha az alkalmazás jelenítse meg." -#: gtk/gtksettings.c:872 +#: gtk/gtksettings.c:831 msgid "Desktop shell shows the menubar" msgstr "Az asztali héj jeleníti meg a menüsávot" -#: gtk/gtksettings.c:873 +#: gtk/gtksettings.c:832 msgid "" "Set to TRUE if the desktop environment is displaying the menubar, FALSE if " "the app should display it itself." @@ -5401,11 +5493,11 @@ msgstr "" "Állítsa IGAZ-ra, ha az asztali környezet jeleníti meg a menüsávot, HAMIS-ra " "ha az alkalmazás jelenítse meg." -#: gtk/gtksettings.c:882 +#: gtk/gtksettings.c:841 msgid "Desktop environment shows the desktop folder" msgstr "Az asztali környezet jeleníti meg az asztal mappát" -#: gtk/gtksettings.c:883 +#: gtk/gtksettings.c:842 msgid "" "Set to TRUE if the desktop environment is displaying the desktop folder, " "FALSE if not." @@ -5413,46 +5505,46 @@ msgstr "" "Állítsa IGAZ-ra, ha az asztali környezet jeleníti meg az asztal mappát, " "HAMIS-ra ha nem." -#: gtk/gtksettings.c:937 +#: gtk/gtksettings.c:892 msgid "Titlebar double-click action" msgstr "Címsoron való dupla kattintás művelete" -#: gtk/gtksettings.c:938 +#: gtk/gtksettings.c:893 msgid "The action to take on titlebar double-click" msgstr "A címsoron való dupla kattintáskor végzendő művelet" -#: gtk/gtksettings.c:956 +#: gtk/gtksettings.c:909 msgid "Titlebar middle-click action" msgstr "Címsoron való középső kattintás művelete" -#: gtk/gtksettings.c:957 +#: gtk/gtksettings.c:910 msgid "The action to take on titlebar middle-click" msgstr "A címsoron való középső kattintáskor végzendő művelet" -#: gtk/gtksettings.c:975 +#: gtk/gtksettings.c:926 msgid "Titlebar right-click action" msgstr "Címsoron való jobb kattintás művelete" -#: gtk/gtksettings.c:976 +#: gtk/gtksettings.c:927 msgid "The action to take on titlebar right-click" msgstr "A címsoron való jobb kattintáskor végzendő művelet" -#: gtk/gtksettings.c:998 +#: gtk/gtksettings.c:947 msgid "Dialogs use header bar" msgstr "A párbeszédablakok fejlécsávot használnak" -#: gtk/gtksettings.c:999 +#: gtk/gtksettings.c:948 msgid "" "Whether builtin GTK+ dialogs should use a header bar instead of an action " "area." msgstr "" "A beépített GTK+ ablakok fejlécsávot használjanak-e a műveletterület helyett." -#: gtk/gtksettings.c:1015 +#: gtk/gtksettings.c:962 msgid "Enable primary paste" msgstr "Elsődleges beillesztés engedélyezése" -#: gtk/gtksettings.c:1016 +#: gtk/gtksettings.c:963 msgid "" "Whether a middle click on a mouse should paste the “PRIMARY” clipboard " "content at the cursor location." @@ -5460,60 +5552,60 @@ msgstr "" "Az egér középső gombja az elsődleges vágólaptartalmat szúrja be a kurzor " "helyére." -#: gtk/gtksettings.c:1032 +#: gtk/gtksettings.c:977 msgid "Recent Files Enabled" msgstr "Legutóbbi fájlok engedélyezve" -#: gtk/gtksettings.c:1033 +#: gtk/gtksettings.c:978 msgid "Whether GTK+ remembers recent files" msgstr "Emlékezzen-e a GTK+ a legutóbbi fájlokra" -#: gtk/gtksettings.c:1048 +#: gtk/gtksettings.c:991 msgid "Long press time" msgstr "Hosszú lenyomás ideje" -#: gtk/gtksettings.c:1049 +#: gtk/gtksettings.c:992 msgid "" "Time for a button/touch press to be considered a long press (in milliseconds)" msgstr "" "Egy gomb/érintés lenyomásának maximális ideje, amely hosszú lenyomásnak " "tekintendő (ezredmásodpercben)" -#: gtk/gtksettings.c:1066 gtk/gtksettings.c:1067 +#: gtk/gtksettings.c:1007 gtk/gtksettings.c:1008 msgid "Whether to show cursor in text" msgstr "Megjelenjen-e a kurzor a szövegben" -#: gtk/gtkshortcutlabel.c:476 gtk/gtkshortcutsshortcut.c:571 +#: gtk/gtkshortcutlabel.c:474 gtk/gtkshortcutsshortcut.c:571 msgid "Accelerator" msgstr "Gyorsbillentyű" -#: gtk/gtkshortcutlabel.c:488 +#: gtk/gtkshortcutlabel.c:484 msgid "Disabled text" msgstr "Letiltott szöveg" -#: gtk/gtkshortcutsgroup.c:319 +#: gtk/gtkshortcutsgroup.c:320 msgid "View" msgstr "Nézet" -#: gtk/gtkshortcutsgroup.c:332 gtk/gtkshortcutsgroup.c:333 +#: gtk/gtkshortcutsgroup.c:333 gtk/gtkshortcutsgroup.c:334 #: gtk/gtkshortcutsshortcut.c:652 gtk/gtkshortcutsshortcut.c:653 msgid "Accelerator Size Group" msgstr "Gyorsbillentyű méretcsoport" -#: gtk/gtkshortcutsgroup.c:346 gtk/gtkshortcutsgroup.c:347 +#: gtk/gtkshortcutsgroup.c:347 gtk/gtkshortcutsgroup.c:348 #: gtk/gtkshortcutsshortcut.c:666 gtk/gtkshortcutsshortcut.c:667 msgid "Title Size Group" msgstr "Cím méretcsoport" -#: gtk/gtkshortcutssection.c:342 gtk/gtkshortcutswindow.c:778 +#: gtk/gtkshortcutssection.c:339 gtk/gtkshortcutswindow.c:795 msgid "Section Name" msgstr "Szakasznév" -#: gtk/gtkshortcutssection.c:356 gtk/gtkshortcutswindow.c:793 +#: gtk/gtkshortcutssection.c:353 gtk/gtkshortcutswindow.c:810 msgid "View Name" msgstr "Nézetnév" -#: gtk/gtkshortcutssection.c:381 +#: gtk/gtkshortcutssection.c:378 msgid "Maximum Height" msgstr "Maximális magasság" @@ -5561,15 +5653,15 @@ msgstr "Hivatkozás típusa" msgid "The type of shortcut that is represented" msgstr "Az ábrázolt hivatkozás típusa" -#: gtk/gtkshortcutsshortcut.c:712 +#: gtk/gtkshortcutsshortcut.c:710 msgid "Action Name" msgstr "Műveletnév" -#: gtk/gtkshortcutsshortcut.c:713 +#: gtk/gtkshortcutsshortcut.c:711 msgid "The name of the action" msgstr "A művelet neve" -#: gtk/gtksizegroup.c:220 gtk/gtktreeselection.c:130 +#: gtk/gtksizegroup.c:220 gtk/gtktreeselection.c:128 msgid "Mode" msgstr "Mód" @@ -5581,15 +5673,19 @@ msgstr "" "Az irányok, amelyekben a méretcsoport befolyásolja az összetevő felületi " "elemeinek kért méretét" -#: gtk/gtkspinbutton.c:348 +#: gtk/gtkspinbutton.c:339 msgid "Climb Rate" msgstr "Emelkedési sebesség" -#: gtk/gtkspinbutton.c:364 +#: gtk/gtkspinbutton.c:340 +msgid "The acceleration rate when you hold down a button or key" +msgstr "A gyorsulási sebesség egy gomb vagy billentyű lenyomásakor" + +#: gtk/gtkspinbutton.c:353 msgid "Snap to Ticks" msgstr "Növekményhez ugrás" -#: gtk/gtkspinbutton.c:365 +#: gtk/gtkspinbutton.c:354 msgid "" "Whether erroneous values are automatically changed to a spin button’s " "nearest step increment" @@ -5597,220 +5693,204 @@ msgstr "" "A hibás értékek automatikusan a léptetőgomb következő növekményéhez legyenek-" "e igazítva" -#: gtk/gtkspinbutton.c:372 +#: gtk/gtkspinbutton.c:360 msgid "Numeric" msgstr "Szám" -#: gtk/gtkspinbutton.c:373 +#: gtk/gtkspinbutton.c:361 msgid "Whether non-numeric characters should be ignored" msgstr "Figyelmen kívül maradjanak-e a nem szám karakterek" -#: gtk/gtkspinbutton.c:380 +#: gtk/gtkspinbutton.c:367 msgid "Wrap" msgstr "Átfordulás" -#: gtk/gtkspinbutton.c:381 +#: gtk/gtkspinbutton.c:368 msgid "Whether a spin button should wrap upon reaching its limits" msgstr "A léptetőgomb átforduljon-e a határérték elérésekor" -#: gtk/gtkspinbutton.c:388 +#: gtk/gtkspinbutton.c:374 msgid "Update Policy" msgstr "Frissítési irányelv" -#: gtk/gtkspinbutton.c:389 +#: gtk/gtkspinbutton.c:375 msgid "" "Whether the spin button should update always, or only when the value is legal" msgstr "A léptetőgomb mindig frissüljön-e, vagy csak ha az érték érvényes" -#: gtk/gtkspinbutton.c:398 +#: gtk/gtkspinbutton.c:383 msgid "Reads the current value, or sets a new value" msgstr "Kiolvassa az aktuális értéket, vagy beállít egy újat" -#: gtk/gtkspinner.c:204 +#: gtk/gtkspinner.c:200 msgid "Whether the spinner is active" msgstr "A forgó aktív-e" -#: gtk/gtkstack.c:326 +#: gtk/gtkstack.c:325 msgid "Homogeneous sizing" msgstr "Homogén méretezés" -#: gtk/gtkstack.c:338 +#: gtk/gtkstack.c:335 msgid "Horizontally homogeneous" msgstr "Vízszintesen homogén" -#: gtk/gtkstack.c:338 +#: gtk/gtkstack.c:335 msgid "Horizontally homogeneous sizing" msgstr "Vízszintesen homogén méretezés" -#: gtk/gtkstack.c:350 +#: gtk/gtkstack.c:345 msgid "Vertically homogeneous" msgstr "Függőlegesen homogén" -#: gtk/gtkstack.c:350 +#: gtk/gtkstack.c:345 msgid "Vertically homogeneous sizing" msgstr "Függőlegesen homogén méretezés" -#: gtk/gtkstack.c:354 +#: gtk/gtkstack.c:349 msgid "Visible child" msgstr "Látható gyermek" -#: gtk/gtkstack.c:354 +#: gtk/gtkstack.c:349 msgid "The widget currently visible in the stack" msgstr "A veremben jelenleg látható felületi elem" -#: gtk/gtkstack.c:358 +#: gtk/gtkstack.c:353 msgid "Name of visible child" msgstr "A látható gyermek neve" -#: gtk/gtkstack.c:358 +#: gtk/gtkstack.c:353 msgid "The name of the widget currently visible in the stack" msgstr "A veremben jelenleg látható felületi elem neve" -#: gtk/gtkstack.c:370 +#: gtk/gtkstack.c:365 msgid "Transition running" msgstr "Átmenet folyamatban" -#: gtk/gtkstack.c:370 +#: gtk/gtkstack.c:365 msgid "Whether or not the transition is currently running" msgstr "Az átmenet jelenleg fut-e" -#: gtk/gtkstack.c:374 +#: gtk/gtkstack.c:369 msgid "Interpolate size" msgstr "Méret interpolációja" -#: gtk/gtkstack.c:374 +#: gtk/gtkstack.c:369 msgid "" "Whether or not the size should smoothly change when changing between " "differently sized children" msgstr "A méret simán módosuljon-e eltérő méretű gyermekek közötti váltáskor." -#: gtk/gtkstack.c:384 +#: gtk/gtkstack.c:379 msgid "The name of the child page" msgstr "A gyermek oldal neve" -#: gtk/gtkstack.c:391 +#: gtk/gtkstack.c:386 msgid "The title of the child page" msgstr "A gyermek oldal címe" -#: gtk/gtkstack.c:397 gtk/gtktoolbutton.c:245 +#: gtk/gtkstack.c:392 gtk/gtktoolbutton.c:240 msgid "Icon name" msgstr "Ikonnév" -#: gtk/gtkstack.c:398 +#: gtk/gtkstack.c:393 msgid "The icon name of the child page" msgstr "A gyermek oldal ikonneve" -#: gtk/gtkstack.c:422 +#: gtk/gtkstack.c:415 msgid "Needs Attention" msgstr "Figyelmet kér" -#: gtk/gtkstack.c:423 +#: gtk/gtkstack.c:416 msgid "Whether this page needs attention" msgstr "Az oldal figyelmet kér-e" -#: gtk/gtkstacksidebar.c:446 gtk/gtkstackswitcher.c:688 -#: gtk/gtkstackswitcher.c:689 gtk/inspector/gtkstackcombo.c:278 -#: gtk/inspector/gtkstackcombo.c:279 +#: gtk/gtkstacksidebar.c:444 gtk/gtkstackswitcher.c:631 +#: gtk/gtkstackswitcher.c:632 gtk/inspector/gtkstackcombo.c:267 +#: gtk/inspector/gtkstackcombo.c:268 msgid "Stack" msgstr "Verem" -#: gtk/gtkstacksidebar.c:447 +#: gtk/gtkstacksidebar.c:445 msgid "Associated stack for this GtkStackSidebar" msgstr "Ehhez a GtkStackSidebar elemhez társított verem" -#: gtk/gtkstackswitcher.c:679 -msgid "Icon Size" -msgstr "Ikonméret" - -#: gtk/gtkstackswitcher.c:680 -msgid "Symbolic size to use for named icon" -msgstr "A megnevezett ikon szimbolikus mérete" +#: gtk/gtkstylecontext.c:208 +msgid "The associated GdkDisplay" +msgstr "A társított GdkDisplay" -#: gtk/gtkstylecontext.c:211 -msgid "The associated GdkScreen" -msgstr "A társított GdkScreen" - -#: gtk/gtkstylecontext.c:217 -msgid "FrameClock" -msgstr "FrameClock" - -#: gtk/gtkstylecontext.c:218 -msgid "The associated GdkFrameClock" -msgstr "A társított GdkFrameClock" - -#: gtk/gtkstylecontext.c:233 +#: gtk/gtkstylecontext.c:221 msgid "The parent style context" msgstr "A szülő stíluskörnyezete" -#: gtk/gtkstyleproperty.c:109 +#: gtk/gtkstyleproperty.c:108 msgid "Property name" msgstr "Tulajdonságnév" -#: gtk/gtkstyleproperty.c:110 +#: gtk/gtkstyleproperty.c:109 msgid "The name of the property" msgstr "A tulajdonság neve" -#: gtk/gtkstyleproperty.c:116 +#: gtk/gtkstyleproperty.c:115 msgid "Value type" msgstr "Érték típusa" -#: gtk/gtkstyleproperty.c:117 +#: gtk/gtkstyleproperty.c:116 msgid "The value type returned by GtkStyleContext" msgstr "A GtkStyleContext által visszadott értéktípus" -#: gtk/gtkswitch.c:532 +#: gtk/gtkswitch.c:522 msgid "Whether the switch is on or off" msgstr "A kapcsoló be vagy ki van-e kapcsolva" -#: gtk/gtkswitch.c:547 +#: gtk/gtkswitch.c:535 msgid "The backend state" msgstr "A háttérprogram állapota" -#: gtk/gtktextbuffer.c:201 +#: gtk/gtktextbuffer.c:410 msgid "Tag Table" msgstr "Tábla megcímkézése" -#: gtk/gtktextbuffer.c:202 +#: gtk/gtktextbuffer.c:411 msgid "Text Tag Table" msgstr "Tábla szöveges megcímkézése" -#: gtk/gtktextbuffer.c:219 +#: gtk/gtktextbuffer.c:426 msgid "Current text of the buffer" msgstr "A puffer jelenlegi szövege" -#: gtk/gtktextbuffer.c:232 +#: gtk/gtktextbuffer.c:437 msgid "Has selection" msgstr "Rendelkezik kijelöléssel" -#: gtk/gtktextbuffer.c:233 +#: gtk/gtktextbuffer.c:438 msgid "Whether the buffer has some text currently selected" msgstr "A pufferben van-e éppen kijelölve szöveg" -#: gtk/gtktextbuffer.c:248 +#: gtk/gtktextbuffer.c:451 msgid "Cursor position" msgstr "Kurzorpozíció" -#: gtk/gtktextbuffer.c:249 +#: gtk/gtktextbuffer.c:452 msgid "" "The position of the insert mark (as offset from the beginning of the buffer)" msgstr "A beszúrási jel pozíciója (a puffer kezdetétől számított eltolásként)" -#: gtk/gtktextbuffer.c:264 +#: gtk/gtktextbuffer.c:465 msgid "Copy target list" msgstr "Másolási céllista" -#: gtk/gtktextbuffer.c:265 +#: gtk/gtktextbuffer.c:466 msgid "" "The list of targets this buffer supports for clipboard copying and DND source" msgstr "" "A puffer által vágólapmásoláshoz, valamint húzd és ejtsd forrásként " "támogatott célok listája" -#: gtk/gtktextbuffer.c:279 +#: gtk/gtktextbuffer.c:478 msgid "Paste target list" msgstr "Beillesztési céllista" -#: gtk/gtktextbuffer.c:280 +#: gtk/gtktextbuffer.c:479 msgid "" "The list of targets this buffer supports for clipboard pasting and DND " "destination" @@ -5818,40 +5898,40 @@ msgstr "" "A puffer által vágólap-beillesztéshez, valamint húzd és ejtsd célként " "támogatott célok listája" -#: gtk/gtktexthandle.c:711 gtk/gtktexthandle.c:712 gtk/gtkwidget.c:1089 +#: gtk/gtktexthandle.c:663 gtk/gtktexthandle.c:664 gtk/gtkwidget.c:948 msgid "Parent widget" msgstr "Szülő felületi elem" -#: gtk/gtktextmark.c:137 +#: gtk/gtktextmark.c:136 msgid "Mark name" msgstr "Jelölés neve" -#: gtk/gtktextmark.c:151 +#: gtk/gtktextmark.c:150 msgid "Left gravity" msgstr "Bal gravitáció" -#: gtk/gtktextmark.c:152 +#: gtk/gtktextmark.c:151 msgid "Whether the mark has left gravity" msgstr "A jelölés bal gravitációval rendelkezik-e" -#: gtk/gtktexttag.c:201 +#: gtk/gtktexttag.c:194 msgid "Tag name" msgstr "Címke neve" -#: gtk/gtktexttag.c:202 +#: gtk/gtktexttag.c:195 msgid "Name used to refer to the text tag. NULL for anonymous tags" msgstr "" "A szöveges címkére hivatkozáshoz használt név. NULL a név nélküli címkékhez" -#: gtk/gtktexttag.c:226 +#: gtk/gtktexttag.c:217 msgid "Background RGBA" msgstr "Háttér RGBA" -#: gtk/gtktexttag.c:234 +#: gtk/gtktexttag.c:225 msgid "Background full height" msgstr "Háttér teljes magasság" -#: gtk/gtktexttag.c:235 +#: gtk/gtktexttag.c:226 msgid "" "Whether the background color fills the entire line height or only the height " "of the tagged characters" @@ -5859,28 +5939,28 @@ msgstr "" "A háttérszín kitölti-e a teljes sormagasságot, vagy csak a címkézett " "karakterek magasságát" -#: gtk/gtktexttag.c:257 +#: gtk/gtktexttag.c:246 msgid "Foreground RGBA" msgstr "Előtérszín RGBA" -#: gtk/gtktexttag.c:265 +#: gtk/gtktexttag.c:254 msgid "Text direction" msgstr "Szövegirány" -#: gtk/gtktexttag.c:266 +#: gtk/gtktexttag.c:255 msgid "Text direction, e.g. right-to-left or left-to-right" msgstr "A szöveg iránya, például jobbról-balra vagy balról jobbra" -#: gtk/gtktexttag.c:315 +#: gtk/gtktexttag.c:304 msgid "Font style as a PangoStyle, e.g. PANGO_STYLE_ITALIC" msgstr "A betűkészlet stílusa, mint PangoStyle, például: PANGO_STYLE_ITALIC" -#: gtk/gtktexttag.c:324 +#: gtk/gtktexttag.c:313 msgid "Font variant as a PangoVariant, e.g. PANGO_VARIANT_SMALL_CAPS" msgstr "" "A betűkészlet változata, mint PangoVariant, például: PANGO_VARIANT_SMALL_CAPS" -#: gtk/gtktexttag.c:333 +#: gtk/gtktexttag.c:322 msgid "" "Font weight as an integer, see predefined values in PangoWeight; for " "example, PANGO_WEIGHT_BOLD" @@ -5888,16 +5968,16 @@ msgstr "" "A betűkészlet súlya egész számként; az előre megadott értékek a PangoWeight " "tulajdonságban találhatók; például PANGO_WEIGHT_BOLD" -#: gtk/gtktexttag.c:344 +#: gtk/gtktexttag.c:333 msgid "Font stretch as a PangoStretch, e.g. PANGO_STRETCH_CONDENSED" msgstr "" "A betűkészlet nyújtása, mint PangoStretch, például: PANGO_STRETCH_CONDENSED" -#: gtk/gtktexttag.c:353 +#: gtk/gtktexttag.c:342 msgid "Font size in Pango units" msgstr "A betűkészlet mérete Pango egységekben" -#: gtk/gtktexttag.c:363 +#: gtk/gtktexttag.c:352 msgid "" "Font size as a scale factor relative to the default font size. This properly " "adapts to theme changes etc. so is recommended. Pango predefines some scales " @@ -5908,11 +5988,11 @@ msgstr "" "javasolt. A Pango előre meghatároz bizonyos arányokat, mint például a " "PANGO_SCALE_X_LARGE" -#: gtk/gtktexttag.c:383 gtk/gtktextview.c:834 +#: gtk/gtktexttag.c:372 gtk/gtktextview.c:776 msgid "Left, right, or center justification" msgstr "Balra, jobbra vagy középre igazítás" -#: gtk/gtktexttag.c:402 +#: gtk/gtktexttag.c:391 msgid "" "The language this text is in, as an ISO code. Pango can use this as a hint " "when rendering the text. If not set, an appropriate default will be used." @@ -5921,31 +6001,31 @@ msgstr "" "szöveg megjelenítéséhez. Ha nincs beállítva, egy megfelelő alapértelmezés " "lesz használva." -#: gtk/gtktexttag.c:409 +#: gtk/gtktexttag.c:398 msgid "Left margin" msgstr "Bal oldali margó" -#: gtk/gtktexttag.c:410 gtk/gtktextview.c:855 +#: gtk/gtktexttag.c:399 gtk/gtktextview.c:797 msgid "Width of the left margin in pixels" msgstr "A bal margó szélessége, képpontokban megadva" -#: gtk/gtktexttag.c:419 +#: gtk/gtktexttag.c:408 msgid "Right margin" msgstr "Jobb oldali margó" -#: gtk/gtktexttag.c:420 gtk/gtktextview.c:875 +#: gtk/gtktexttag.c:409 gtk/gtktextview.c:817 msgid "Width of the right margin in pixels" msgstr "A jobb margó szélessége, képpontokban megadva" -#: gtk/gtktexttag.c:430 gtk/gtktextview.c:924 +#: gtk/gtktexttag.c:419 gtk/gtktextview.c:862 msgid "Indent" msgstr "Behúzás" -#: gtk/gtktexttag.c:431 gtk/gtktextview.c:925 +#: gtk/gtktexttag.c:420 gtk/gtktextview.c:863 msgid "Amount to indent the paragraph, in pixels" msgstr "A bekezdés behúzása, képpontokban megadva" -#: gtk/gtktexttag.c:442 +#: gtk/gtktexttag.c:431 msgid "" "Offset of text above the baseline (below the baseline if rise is negative) " "in Pango units" @@ -5953,364 +6033,348 @@ msgstr "" "Az alapvonal feletti szövegeltolás (az alapvonal alatti, ha negatív érték), " "Pango egységekben megadva" -#: gtk/gtktexttag.c:451 +#: gtk/gtktexttag.c:440 msgid "Pixels above lines" msgstr "Vonalak feletti képpontok" -#: gtk/gtktexttag.c:452 gtk/gtktextview.c:793 +#: gtk/gtktexttag.c:441 gtk/gtktextview.c:735 msgid "Pixels of blank space above paragraphs" msgstr "A bekezdések feletti üres terület, képpontokban megadva" -#: gtk/gtktexttag.c:461 +#: gtk/gtktexttag.c:450 msgid "Pixels below lines" msgstr "Vonalak alatti képpontok" -#: gtk/gtktexttag.c:462 gtk/gtktextview.c:801 +#: gtk/gtktexttag.c:451 gtk/gtktextview.c:743 msgid "Pixels of blank space below paragraphs" msgstr "A bekezdések alatti üres terület, képpontokban megadva" -#: gtk/gtktexttag.c:471 +#: gtk/gtktexttag.c:460 msgid "Pixels inside wrap" msgstr "Tördelésen belüli képpontok" -#: gtk/gtktexttag.c:472 gtk/gtktextview.c:809 +#: gtk/gtktexttag.c:461 gtk/gtktextview.c:751 msgid "Pixels of blank space between wrapped lines in a paragraph" msgstr "A bekezdés áttördelt sorai közötti üres terület, képpontokban megadva" -#: gtk/gtktexttag.c:510 +#: gtk/gtktexttag.c:497 msgid "Underline RGBA" msgstr "Aláhúzás RGBA" -#: gtk/gtktexttag.c:511 +#: gtk/gtktexttag.c:498 msgid "Color of underline for this text" msgstr "Ezen szöveg aláhúzásának színe" -#: gtk/gtktexttag.c:526 +#: gtk/gtktexttag.c:511 msgid "Strikethrough RGBA" msgstr "Áthúzás RGBA" -#: gtk/gtktexttag.c:527 +#: gtk/gtktexttag.c:512 msgid "Color of strikethrough for this text" msgstr "Ezen szöveg áthúzásának színe" -#: gtk/gtktexttag.c:535 gtk/gtktextview.c:825 +#: gtk/gtktexttag.c:520 gtk/gtktextview.c:767 msgid "" "Whether to wrap lines never, at word boundaries, or at character boundaries" msgstr "A sorok tördelésének módja: soha, szóhatárokon, karakterhatárokon" -#: gtk/gtktexttag.c:545 gtk/gtktextview.c:933 +#: gtk/gtktexttag.c:530 gtk/gtktextview.c:871 msgid "Custom tabs for this text" msgstr "A szöveg egyedi lapjai" -#: gtk/gtktexttag.c:563 +#: gtk/gtktexttag.c:546 msgid "Invisible" msgstr "Láthatatlan" -#: gtk/gtktexttag.c:564 +#: gtk/gtktexttag.c:547 msgid "Whether this text is hidden." msgstr "Ez a szöveg rejtett-e?" -#: gtk/gtktexttag.c:578 +#: gtk/gtktexttag.c:559 msgid "Paragraph background color name" msgstr "Bekezdés háttérszínének neve" -#: gtk/gtktexttag.c:579 +#: gtk/gtktexttag.c:560 msgid "Paragraph background color as a string" msgstr "Bekezdés háttérszíne karakterláncként" -#: gtk/gtktexttag.c:593 +#: gtk/gtktexttag.c:572 msgid "Paragraph background RGBA" msgstr "Bekezdés-háttérszín RGBA-ja" -#: gtk/gtktexttag.c:594 +#: gtk/gtktexttag.c:573 msgid "Paragraph background RGBA as a GdkRGBA" msgstr "Bekezdés-háttérszín RGBA-ja GdkRGBA-ként" -#: gtk/gtktexttag.c:611 -msgid "Fallback" -msgstr "Tartalék" - -#: gtk/gtktexttag.c:612 +#: gtk/gtktexttag.c:589 msgid "Whether font fallback is enabled." msgstr "A tartalék betűkészlet engedélyezve van-e." -#: gtk/gtktexttag.c:626 +#: gtk/gtktexttag.c:601 msgid "Letter Spacing" msgstr "Betűköz" -#: gtk/gtktexttag.c:627 +#: gtk/gtktexttag.c:602 msgid "Extra spacing between graphemes" msgstr "A grafémák közti további térköz" -#: gtk/gtktexttag.c:641 +#: gtk/gtktexttag.c:614 msgid "Font Features" msgstr "Betűjellemzők" -#: gtk/gtktexttag.c:642 +#: gtk/gtktexttag.c:615 msgid "OpenType Font Features to use" msgstr "Használandó OpenType betűjellemzők" -#: gtk/gtktexttag.c:660 +#: gtk/gtktexttag.c:631 msgid "Margin Accumulates" msgstr "Margóegyesítés" -#: gtk/gtktexttag.c:661 +#: gtk/gtktexttag.c:632 msgid "Whether left and right margins accumulate." msgstr "A bal és jobb margók egyesülnek-e." -#: gtk/gtktexttag.c:674 +#: gtk/gtktexttag.c:645 msgid "Background full height set" msgstr "Háttér teljes magasság beállítva" -#: gtk/gtktexttag.c:675 +#: gtk/gtktexttag.c:646 msgid "Whether this tag affects background height" msgstr "A címke befolyásolja-e a háttérmagasságot" -#: gtk/gtktexttag.c:714 +#: gtk/gtktexttag.c:685 msgid "Justification set" msgstr "Sorkizárás beállítva" -#: gtk/gtktexttag.c:715 +#: gtk/gtktexttag.c:686 msgid "Whether this tag affects paragraph justification" msgstr "A címke befolyásolja-e a bekezdés sorkizárását" -#: gtk/gtktexttag.c:722 +#: gtk/gtktexttag.c:693 msgid "Left margin set" msgstr "Bal margó beállítva" -#: gtk/gtktexttag.c:723 +#: gtk/gtktexttag.c:694 msgid "Whether this tag affects the left margin" msgstr "A címke befolyásolja-e a bal margót" -#: gtk/gtktexttag.c:726 +#: gtk/gtktexttag.c:697 msgid "Indent set" msgstr "Behúzás beállítva" -#: gtk/gtktexttag.c:727 +#: gtk/gtktexttag.c:698 msgid "Whether this tag affects indentation" msgstr "A címke befolyásolja-e a behúzást" -#: gtk/gtktexttag.c:734 +#: gtk/gtktexttag.c:705 msgid "Pixels above lines set" msgstr "Vonal feletti képpontok beállítva" -#: gtk/gtktexttag.c:735 gtk/gtktexttag.c:739 +#: gtk/gtktexttag.c:706 gtk/gtktexttag.c:710 msgid "Whether this tag affects the number of pixels above lines" msgstr "A címke befolyásolja-e a vonal feletti képpontok számát" -#: gtk/gtktexttag.c:738 +#: gtk/gtktexttag.c:709 msgid "Pixels below lines set" msgstr "Vonal alatti képpontok beállítva" -#: gtk/gtktexttag.c:742 +#: gtk/gtktexttag.c:713 msgid "Pixels inside wrap set" msgstr "Tördelésen belüli képpontok beállítva" -#: gtk/gtktexttag.c:743 +#: gtk/gtktexttag.c:714 msgid "Whether this tag affects the number of pixels between wrapped lines" msgstr "A címke befolyásolja-e a tördelésen belüli képpontok számát" -#: gtk/gtktexttag.c:750 +#: gtk/gtktexttag.c:721 msgid "Right margin set" msgstr "Jobb margó beállítva" -#: gtk/gtktexttag.c:751 +#: gtk/gtktexttag.c:722 msgid "Whether this tag affects the right margin" msgstr "A címke befolyásolja-e a jobb margót" -#: gtk/gtktexttag.c:765 +#: gtk/gtktexttag.c:734 msgid "Underline RGBA set" msgstr "Aláhúzás RGBA beállítása" -#: gtk/gtktexttag.c:766 +#: gtk/gtktexttag.c:735 msgid "Whether this tag affects underlining color" msgstr "Ez az elem befolyásolja-e az aláhúzás színét" -#: gtk/gtktexttag.c:776 +#: gtk/gtktexttag.c:743 msgid "Strikethrough RGBA set" msgstr "Áthúzás RGBA beállítása" -#: gtk/gtktexttag.c:777 +#: gtk/gtktexttag.c:744 msgid "Whether this tag affects strikethrough color" msgstr "Ez az elem befolyásolja-e az áthúzás színét" -#: gtk/gtktexttag.c:780 +#: gtk/gtktexttag.c:747 msgid "Wrap mode set" msgstr "Tördelési mód beállítva" -#: gtk/gtktexttag.c:781 +#: gtk/gtktexttag.c:748 msgid "Whether this tag affects line wrap mode" msgstr "A címke befolyásolja-e a sorok tördelésének módját" -#: gtk/gtktexttag.c:784 +#: gtk/gtktexttag.c:751 msgid "Tabs set" msgstr "Tabulátor beállítása" -#: gtk/gtktexttag.c:785 +#: gtk/gtktexttag.c:752 msgid "Whether this tag affects tabs" msgstr "A címke befolyásolja-e a tabulátorok beállítását" -#: gtk/gtktexttag.c:788 +#: gtk/gtktexttag.c:755 msgid "Invisible set" msgstr "Láthatatlan beállítva" -#: gtk/gtktexttag.c:789 +#: gtk/gtktexttag.c:756 msgid "Whether this tag affects text visibility" msgstr "A címke befolyásolja-e a szöveg láthatóságát" -#: gtk/gtktexttag.c:792 +#: gtk/gtktexttag.c:759 msgid "Paragraph background set" msgstr "Bekezdés háttérszínének beállítása" -#: gtk/gtktexttag.c:793 +#: gtk/gtktexttag.c:760 msgid "Whether this tag affects the paragraph background color" msgstr "Ez a címke befolyásolja-e a bekezdés háttérszínét" -#: gtk/gtktexttag.c:796 +#: gtk/gtktexttag.c:763 msgid "Fallback set" msgstr "Tartalék beállítása" -#: gtk/gtktexttag.c:797 +#: gtk/gtktexttag.c:764 msgid "Whether this tag affects font fallback" msgstr "Ez a címke befolyásolja-e a tartalék betűkészletet" -#: gtk/gtktexttag.c:800 +#: gtk/gtktexttag.c:767 msgid "Letter spacing set" msgstr "Betűköz beállítása" -#: gtk/gtktexttag.c:801 +#: gtk/gtktexttag.c:768 msgid "Whether this tag affects letter spacing" msgstr "Ez a címke befolyásolja-e a betűközt" -#: gtk/gtktexttag.c:804 +#: gtk/gtktexttag.c:771 msgid "Font features set" msgstr "Beállított betűjellemzők" -#: gtk/gtktexttag.c:805 +#: gtk/gtktexttag.c:772 msgid "Whether this tag affects font features" msgstr "Az elem befolyásolja-e a betűjellemzőket" -#: gtk/gtktextview.c:792 +#: gtk/gtktextview.c:734 msgid "Pixels Above Lines" msgstr "Sorok feletti képpontok" -#: gtk/gtktextview.c:800 +#: gtk/gtktextview.c:742 msgid "Pixels Below Lines" msgstr "Sorok alatti képpontok" -#: gtk/gtktextview.c:808 +#: gtk/gtktextview.c:750 msgid "Pixels Inside Wrap" msgstr "Tördelésen belüli képpontok" -#: gtk/gtktextview.c:824 +#: gtk/gtktextview.c:766 msgid "Wrap Mode" msgstr "Sortördelés módja" -#: gtk/gtktextview.c:854 +#: gtk/gtktextview.c:796 msgid "Left Margin" msgstr "Bal oldali margó" -#: gtk/gtktextview.c:874 +#: gtk/gtktextview.c:816 msgid "Right Margin" msgstr "Jobb oldali margó" -#: gtk/gtktextview.c:895 +#: gtk/gtktextview.c:835 msgid "Top Margin" msgstr "Felső margó" -#: gtk/gtktextview.c:896 +#: gtk/gtktextview.c:836 msgid "Height of the top margin in pixels" msgstr "A felső margó magassága képpontokban megadva" -#: gtk/gtktextview.c:916 +#: gtk/gtktextview.c:854 msgid "Bottom Margin" msgstr "Alsó margó" -#: gtk/gtktextview.c:917 +#: gtk/gtktextview.c:855 msgid "Height of the bottom margin in pixels" msgstr "Az alsó margó magassága képpontokban megadva" -#: gtk/gtktextview.c:940 +#: gtk/gtktextview.c:878 msgid "Cursor Visible" msgstr "Kurzor látható" -#: gtk/gtktextview.c:941 +#: gtk/gtktextview.c:879 msgid "If the insertion cursor is shown" msgstr "A beszúrási kurzor látható-e" -#: gtk/gtktextview.c:948 +#: gtk/gtktextview.c:886 msgid "Buffer" msgstr "Puffer" -#: gtk/gtktextview.c:949 +#: gtk/gtktextview.c:887 msgid "The buffer which is displayed" msgstr "A megjelenített puffer" -#: gtk/gtktextview.c:957 +#: gtk/gtktextview.c:895 msgid "Whether entered text overwrites existing contents" msgstr "A beírt szöveg felülírja-e a meglévő tartalmat" -#: gtk/gtktextview.c:964 +#: gtk/gtktextview.c:902 msgid "Accepts tab" msgstr "Tabulátor elfogadása" -#: gtk/gtktextview.c:965 +#: gtk/gtktextview.c:903 msgid "Whether Tab will result in a tab character being entered" msgstr "A Tab gomb megnyomása tabulátor karakter beírását eredményezi-e" -#: gtk/gtktextview.c:1053 +#: gtk/gtktextview.c:981 msgid "Monospace" msgstr "Rögzített szélességű" -#: gtk/gtktextview.c:1054 +#: gtk/gtktextview.c:982 msgid "Whether to use a monospace font" msgstr "Használjon-e rögzített szélességű betűkészletet" -#: gtk/gtktogglebutton.c:157 gtk/gtktoggletoolbutton.c:116 +#: gtk/gtktogglebutton.c:161 gtk/gtktoggletoolbutton.c:114 msgid "If the toggle button should be pressed in" msgstr "Az átkapcsoló gomb le legyen-e nyomva?" -#: gtk/gtktoolbar.c:499 gtk/gtktoolpalette.c:945 +#: gtk/gtktoolbar.c:488 msgid "Toolbar Style" msgstr "Eszköztár stílusa" -#: gtk/gtktoolbar.c:500 +#: gtk/gtktoolbar.c:489 msgid "How to draw the toolbar" msgstr "Az eszköztár kirajzolása" -#: gtk/gtktoolbar.c:507 +#: gtk/gtktoolbar.c:496 msgid "Show Arrow" msgstr "Nyíl megjelenítése" -#: gtk/gtktoolbar.c:508 +#: gtk/gtktoolbar.c:497 msgid "If an arrow should be shown if the toolbar doesn’t fit" msgstr "Jelenjen-e meg egy nyíl, ha az eszköztár nem fér ki" -#: gtk/gtktoolbar.c:529 -msgid "Size of icons in this toolbar" -msgstr "Az eszköztár ikonjainak mérete" - -#: gtk/gtktoolbar.c:544 gtk/gtktoolpalette.c:931 -msgid "Icon size set" -msgstr "Ikonméret beállítva" - -#: gtk/gtktoolbar.c:545 gtk/gtktoolpalette.c:932 -msgid "Whether the icon-size property has been set" -msgstr "Az ikonméret tulajdonság be van-e állítva" - -#: gtk/gtktoolbar.c:554 +#: gtk/gtktoolbar.c:506 msgid "Whether the item should receive extra space when the toolbar grows" msgstr "Az elem kapjon-e extra területet, ha az eszköztár nő" -#: gtk/gtktoolbar.c:562 gtk/gtktoolitemgroup.c:1591 +#: gtk/gtktoolbar.c:514 msgid "Whether the item should be the same size as other homogeneous items" msgstr "Az elem ugyanakkora legyen-e, mint a többi homogén elem" -#: gtk/gtktoolbutton.c:216 +#: gtk/gtktoolbutton.c:213 msgid "Text to show in the item." msgstr "Az elemben megjelenítendő szöveg." -#: gtk/gtktoolbutton.c:223 +#: gtk/gtktoolbutton.c:220 msgid "" "If set, an underline in the label property indicates that the next character " "should be used for the mnemonic accelerator key in the overflow menu" @@ -6318,27 +6382,27 @@ msgstr "" "Ha be van állítva, akkor a címketulajdonságban szereplő aláhúzás karakter " "azt jelzi, hogy a következő karakter legyen a menüben a hívóbetű." -#: gtk/gtktoolbutton.c:230 +#: gtk/gtktoolbutton.c:227 msgid "Widget to use as the item label" msgstr "Elemcímkeként használandó felületi elem" -#: gtk/gtktoolbutton.c:246 +#: gtk/gtktoolbutton.c:241 msgid "The name of the themed icon displayed on the item" msgstr "Az elemen megjelenő témaikon neve" -#: gtk/gtktoolbutton.c:252 +#: gtk/gtktoolbutton.c:247 msgid "Icon widget" msgstr "Ikon felületi elem" -#: gtk/gtktoolbutton.c:253 +#: gtk/gtktoolbutton.c:248 msgid "Icon widget to display in the item" msgstr "Az elemben megjelenítendő ikon felületi elem" -#: gtk/gtktoolitem.c:129 +#: gtk/gtktoolitem.c:128 msgid "Visible when horizontal" msgstr "Látható, ha vízszintes" -#: gtk/gtktoolitem.c:130 +#: gtk/gtktoolitem.c:129 msgid "" "Whether the toolbar item is visible when the toolbar is in a horizontal " "orientation." @@ -6346,11 +6410,11 @@ msgstr "" "Azt szabályozza, hogy az eszköztárelem látható-e, ha az eszköztár vízszintes " "irányban áll." -#: gtk/gtktoolitem.c:136 +#: gtk/gtktoolitem.c:135 msgid "Visible when vertical" msgstr "Látható, ha függőleges" -#: gtk/gtktoolitem.c:137 +#: gtk/gtktoolitem.c:136 msgid "" "Whether the toolbar item is visible when the toolbar is in a vertical " "orientation." @@ -6358,11 +6422,11 @@ msgstr "" "Azt szabályozza, hogy az eszköztárelem látható-e, ha az eszköztár függőleges " "irányban áll." -#: gtk/gtktoolitem.c:143 +#: gtk/gtktoolitem.c:142 msgid "Is important" msgstr "Fontos-e" -#: gtk/gtktoolitem.c:144 +#: gtk/gtktoolitem.c:143 msgid "" "Whether the toolbar item is considered important. When TRUE, toolbar buttons " "show text in GTK_TOOLBAR_BOTH_HORIZ mode" @@ -6370,104 +6434,27 @@ msgstr "" "Az eszköztárelem fontos-e: ha IGAZ, akkor az eszköztár gombjai szöveget " "jelenítenek meg GTK_TOOLBAR_BOTH_HORIZ módban" -#: gtk/gtktoolitemgroup.c:1556 -msgid "The human-readable title of this item group" -msgstr "Az elemcsoport emberek által olvasható leírása" - -#: gtk/gtktoolitemgroup.c:1563 -msgid "A widget to display in place of the usual label" -msgstr "A szokásos címke helyén megjelenítendő felületi elem" - -#: gtk/gtktoolitemgroup.c:1569 -msgid "Collapsed" -msgstr "Összecsukott" - -#: gtk/gtktoolitemgroup.c:1570 -msgid "Whether the group has been collapsed and items are hidden" -msgstr "A csoport össze van-e csukva, és az elemei el vannak-e rejtve?" - -#: gtk/gtktoolitemgroup.c:1576 -msgid "ellipsize" -msgstr "kihagyás" - -#: gtk/gtktoolitemgroup.c:1577 -msgid "Ellipsize for item group headers" -msgstr "Az elemcsoport fejléceinek kihagyása" - -#: gtk/gtktoolitemgroup.c:1583 -msgid "Header Relief" -msgstr "Fejléc kiemelése" - -#: gtk/gtktoolitemgroup.c:1584 -msgid "Relief of the group header button" -msgstr "A csoportfejlécgombok kiemelése" - -#: gtk/gtktoolitemgroup.c:1598 -msgid "Whether the item should receive extra space when the group grows" -msgstr "Az elem kapjon-e extra területet, ha a csoport nő" - -#: gtk/gtktoolitemgroup.c:1604 -msgid "Fill" -msgstr "Kitöltés" - -#: gtk/gtktoolitemgroup.c:1605 -msgid "Whether the item should fill the available space" -msgstr "Az elemnek ki kell-e töltenie a rendelkezésre álló területet?" - -#: gtk/gtktoolitemgroup.c:1611 -msgid "New Row" -msgstr "Új sor" - -#: gtk/gtktoolitemgroup.c:1612 -msgid "Whether the item should start a new row" -msgstr "Az elemnek új sort kell-e kezdenie?" - -#: gtk/gtktoolitemgroup.c:1619 -msgid "Position of the item within this group" -msgstr "Az elem pozíciója a csoporton belül" - -#: gtk/gtktoolpalette.c:916 -msgid "Size of icons in this tool palette" -msgstr "Az eszközpaletta ikonjainak mérete" - -#: gtk/gtktoolpalette.c:946 -msgid "Style of items in the tool palette" -msgstr "Az eszközpaletta elemeinek stílusa" - -#: gtk/gtktoolpalette.c:962 -msgid "Exclusive" -msgstr "Kizárólagos" - -#: gtk/gtktoolpalette.c:963 -msgid "Whether the item group should be the only expanded at a given time" -msgstr "Az elemcsoport csak adott időben kerüljön-e kiterjesztésre?" - -#: gtk/gtktoolpalette.c:978 -msgid "" -"Whether the item group should receive extra space when the palette grows" -msgstr "Az elemcsoport csak akkor kapjon-e extra területet, ha a paletta nő" - -#: gtk/gtktreemenu.c:251 +#: gtk/gtktreemenu.c:242 msgid "TreeMenu model" msgstr "TreeMenu modell" -#: gtk/gtktreemenu.c:252 +#: gtk/gtktreemenu.c:243 msgid "The model for the tree menu" msgstr "A famenü modellje" -#: gtk/gtktreemenu.c:274 +#: gtk/gtktreemenu.c:263 msgid "TreeMenu root row" msgstr "TreeMenu gyökérsora" -#: gtk/gtktreemenu.c:275 +#: gtk/gtktreemenu.c:264 msgid "The TreeMenu will display children of the specified root" msgstr "A TreeMenu a megadott gyökér gyermekeit jeleníti meg" -#: gtk/gtktreemenu.c:310 +#: gtk/gtktreemenu.c:294 msgid "Wrap Width" msgstr "Tördelés szélessége" -#: gtk/gtktreemenu.c:311 +#: gtk/gtktreemenu.c:295 msgid "Wrap width for laying out items in a grid" msgstr "Az elemek rácsra rendezésekor az áttördelés szélessége" @@ -6495,263 +6482,283 @@ msgstr "TreeModelSort modell" msgid "The model for the TreeModelSort to sort" msgstr "A TreeModelSort által rendezendő modell" -#: gtk/gtktreeview.c:1021 +#: gtk/gtktreeview.c:1002 msgid "TreeView Model" msgstr "TreeView modell" -#: gtk/gtktreeview.c:1022 +#: gtk/gtktreeview.c:1003 msgid "The model for the tree view" msgstr "A fa nézet modellje" -#: gtk/gtktreeview.c:1028 +#: gtk/gtktreeview.c:1009 msgid "Headers Visible" msgstr "A fejlécek láthatóak" -#: gtk/gtktreeview.c:1029 +#: gtk/gtktreeview.c:1010 msgid "Show the column header buttons" msgstr "Az oszlopfejléc-gombok megjelenítése" -#: gtk/gtktreeview.c:1035 +#: gtk/gtktreeview.c:1016 msgid "Headers Clickable" msgstr "A fejlécekre lehet kattintani" -#: gtk/gtktreeview.c:1036 +#: gtk/gtktreeview.c:1017 msgid "Column headers respond to click events" msgstr "Az oszlopfejlécek reagálnak a kattintás eseményre" -#: gtk/gtktreeview.c:1042 +#: gtk/gtktreeview.c:1023 msgid "Expander Column" msgstr "Kiterjesztő oszlop" -#: gtk/gtktreeview.c:1043 +#: gtk/gtktreeview.c:1024 msgid "Set the column for the expander column" msgstr "Az oszlop beállítása kiterjesztő oszlopként" -#: gtk/gtktreeview.c:1056 +#: gtk/gtktreeview.c:1037 msgid "Enable Search" msgstr "Keresés engedélyezése" -#: gtk/gtktreeview.c:1057 +#: gtk/gtktreeview.c:1038 msgid "View allows user to search through columns interactively" msgstr "A felhasználók interaktívan kereshetnek az oszlopokban" -#: gtk/gtktreeview.c:1063 +#: gtk/gtktreeview.c:1044 msgid "Search Column" msgstr "Keresési oszlop" -#: gtk/gtktreeview.c:1064 +#: gtk/gtktreeview.c:1045 msgid "Model column to search through during interactive search" msgstr "Az interaktív kereséskor keresendő modelloszlop" -#: gtk/gtktreeview.c:1082 +#: gtk/gtktreeview.c:1061 msgid "Fixed Height Mode" msgstr "Rögzített magasság mód" -#: gtk/gtktreeview.c:1083 +#: gtk/gtktreeview.c:1062 msgid "Speeds up GtkTreeView by assuming that all rows have the same height" msgstr "" "A GtkTreeView felgyorsítása annak feltételezésével, hogy az összes sor " "magassága egyforma" -#: gtk/gtktreeview.c:1102 +#: gtk/gtktreeview.c:1079 msgid "Hover Selection" msgstr "Lebegő kijelölés" -#: gtk/gtktreeview.c:1103 +#: gtk/gtktreeview.c:1080 msgid "Whether the selection should follow the pointer" msgstr "A kijelölés kövesse-e a mutatót" -#: gtk/gtktreeview.c:1121 +#: gtk/gtktreeview.c:1096 msgid "Hover Expand" msgstr "Lebegtetés kiterjesztése" -#: gtk/gtktreeview.c:1122 +#: gtk/gtktreeview.c:1097 msgid "" "Whether rows should be expanded/collapsed when the pointer moves over them" msgstr "A sorok bővüljenek-e/fogyjanak-e, ha a mutató mozog rajtuk" -#: gtk/gtktreeview.c:1135 +#: gtk/gtktreeview.c:1108 msgid "Show Expanders" msgstr "Kiterjesztők megjelenítése" -#: gtk/gtktreeview.c:1136 +#: gtk/gtktreeview.c:1109 msgid "View has expanders" msgstr "A nézet rendelkezik kiterjesztőkkel" -#: gtk/gtktreeview.c:1149 +#: gtk/gtktreeview.c:1120 msgid "Level Indentation" msgstr "Szintbehúzás" -#: gtk/gtktreeview.c:1150 +#: gtk/gtktreeview.c:1121 msgid "Extra indentation for each level" msgstr "Az egyes szintek behúzása" -#: gtk/gtktreeview.c:1157 +#: gtk/gtktreeview.c:1128 msgid "Rubber Banding" msgstr "Gumiszalag" -#: gtk/gtktreeview.c:1158 +#: gtk/gtktreeview.c:1129 msgid "" "Whether to enable selection of multiple items by dragging the mouse pointer" msgstr "Lehet-e egyszerre több elemet kijelölni az egérmutató húzásával" -#: gtk/gtktreeview.c:1164 +#: gtk/gtktreeview.c:1135 msgid "Enable Grid Lines" msgstr "Rácsvonalak engedélyezése" -#: gtk/gtktreeview.c:1165 +#: gtk/gtktreeview.c:1136 msgid "Whether grid lines should be drawn in the tree view" msgstr "A rácsvonalak meg legyenek-e jelenítve a fanézetben" -#: gtk/gtktreeview.c:1172 +#: gtk/gtktreeview.c:1143 msgid "Enable Tree Lines" msgstr "Favonalak engedélyezése" -#: gtk/gtktreeview.c:1173 +#: gtk/gtktreeview.c:1144 msgid "Whether tree lines should be drawn in the tree view" msgstr "A favonalak meg legyenek-e jelenítve a fanézetben" -#: gtk/gtktreeview.c:1180 +#: gtk/gtktreeview.c:1151 msgid "The column in the model containing the tooltip texts for the rows" msgstr "A sorok eszköztippszövegeit tartalmazó modelloszlop." -#: gtk/gtktreeviewcolumn.c:246 +#: gtk/gtktreeviewcolumn.c:255 msgid "Whether to display the column" msgstr "Az oszlop megjelenítésre kerüljön-e" -#: gtk/gtktreeviewcolumn.c:252 gtk/gtkwindow.c:882 +#: gtk/gtktreeviewcolumn.c:261 gtk/gtkwindow.c:862 msgid "Resizable" msgstr "Átméretezhető" -#: gtk/gtktreeviewcolumn.c:253 +#: gtk/gtktreeviewcolumn.c:262 msgid "Column is user-resizable" msgstr "Az oszlopot a felhasználó átméretezheti" -#: gtk/gtktreeviewcolumn.c:260 +#: gtk/gtktreeviewcolumn.c:269 msgid "Current X position of the column" msgstr "Az oszlop aktuális X pozíciója" -#: gtk/gtktreeviewcolumn.c:268 +#: gtk/gtktreeviewcolumn.c:277 msgid "Current width of the column" msgstr "Az oszlop jelenlegi szélessége" -#: gtk/gtktreeviewcolumn.c:283 +#: gtk/gtktreeviewcolumn.c:292 msgid "Sizing" msgstr "Méretezés" -#: gtk/gtktreeviewcolumn.c:284 +#: gtk/gtktreeviewcolumn.c:293 msgid "Resize mode of the column" msgstr "Az oszlop méretezési módja" -#: gtk/gtktreeviewcolumn.c:291 +#: gtk/gtktreeviewcolumn.c:300 msgid "Fixed Width" msgstr "Rögzített szélességű" -#: gtk/gtktreeviewcolumn.c:292 +#: gtk/gtktreeviewcolumn.c:301 msgid "Current fixed width of the column" msgstr "Az oszlop jelenlegi rögzített szélessége" -#: gtk/gtktreeviewcolumn.c:300 +#: gtk/gtktreeviewcolumn.c:309 msgid "Minimum allowed width of the column" msgstr "Az oszlop engedélyezett minimális szélessége" -#: gtk/gtktreeviewcolumn.c:307 +#: gtk/gtktreeviewcolumn.c:316 msgid "Maximum Width" msgstr "Maximális szélesség" -#: gtk/gtktreeviewcolumn.c:308 +#: gtk/gtktreeviewcolumn.c:317 msgid "Maximum allowed width of the column" msgstr "Az oszlop engedélyezett maximális szélessége" -#: gtk/gtktreeviewcolumn.c:316 +#: gtk/gtktreeviewcolumn.c:325 msgid "Title to appear in column header" msgstr "Az oszlopfejlécben megjelenő cím" -#: gtk/gtktreeviewcolumn.c:323 +#: gtk/gtktreeviewcolumn.c:332 msgid "Column gets share of extra width allocated to the widget" msgstr "Az oszlop kap a felületi elemnek lefoglalt extra szélességből" -#: gtk/gtktreeviewcolumn.c:329 +#: gtk/gtktreeviewcolumn.c:338 msgid "Clickable" msgstr "Kattintható" -#: gtk/gtktreeviewcolumn.c:330 +#: gtk/gtktreeviewcolumn.c:339 msgid "Whether the header can be clicked" msgstr "Rá lehet-e kattintani a fejlécre" -#: gtk/gtktreeviewcolumn.c:337 +#: gtk/gtktreeviewcolumn.c:346 msgid "Widget to put in column header button instead of column title" msgstr "Az oszlopfejlécben az oszlop címe helyett megjelenő felületi elem" -#: gtk/gtktreeviewcolumn.c:344 +#: gtk/gtktreeviewcolumn.c:353 msgid "X Alignment of the column header text or widget" msgstr "Az oszlopfejléc-szöveg vagy felületi elem X irányú igazítása" -#: gtk/gtktreeviewcolumn.c:351 +#: gtk/gtktreeviewcolumn.c:360 msgid "Whether the column can be reordered around the headers" msgstr "Az oszlop átrendezhető-e a fejlécek alapján" -#: gtk/gtktreeviewcolumn.c:357 +#: gtk/gtktreeviewcolumn.c:366 msgid "Sort indicator" msgstr "Rendezésjelző" -#: gtk/gtktreeviewcolumn.c:358 +#: gtk/gtktreeviewcolumn.c:367 msgid "Whether to show a sort indicator" msgstr "Megjelenjen-e rendezésjelző" -#: gtk/gtktreeviewcolumn.c:364 +#: gtk/gtktreeviewcolumn.c:373 msgid "Sort order" msgstr "Rendezési sorrend" -#: gtk/gtktreeviewcolumn.c:365 +#: gtk/gtktreeviewcolumn.c:374 msgid "Sort direction the sort indicator should indicate" msgstr "A rendezésjelző által megjelenítendő rendezési sorrend" -#: gtk/gtktreeviewcolumn.c:380 +#: gtk/gtktreeviewcolumn.c:387 msgid "Sort column ID" msgstr "Oszlopazonosító rendezése" -#: gtk/gtktreeviewcolumn.c:381 +#: gtk/gtktreeviewcolumn.c:388 msgid "Logical sort column ID this column sorts on when selected for sorting" msgstr "" "Az oszlop rendezése ezen logikai oszloprendezési azonosító alapján, ha " "kiválasztják rendezésre" -#: gtk/gtkviewport.c:251 +#: gtk/gtkvideo.c:285 +msgid "Autoplay" +msgstr "Automatikus lejátszás" + +#: gtk/gtkvideo.c:286 +msgid "If playback should begin automatically" +msgstr "Ha a lejátszásnak automatikusan el kell indulnia" + +#: gtk/gtkvideo.c:298 +msgid "The video file played back" +msgstr "A lejátszott videofájl" + +#: gtk/gtkvideo.c:310 +msgid "If new media streams should be set to loop" +msgstr "Ha az új médiafolyamokat végtelenítésre kell állítani" + +#: gtk/gtkvideo.c:322 +msgid "The media stream played" +msgstr "A lejátszott médiafolyam" + +#: gtk/gtkviewport.c:269 msgid "Shadow type" msgstr "Árnyék típusa" -#: gtk/gtkviewport.c:252 +#: gtk/gtkviewport.c:270 msgid "Determines how the shadowed box around the viewport is drawn" msgstr "" "Azt határozza meg, hogyan legyen megjelenítve az árnyékolt mező a nézetport " "körül" -#: gtk/gtkvolumebutton.c:168 +#: gtk/gtkvolumebutton.c:167 msgid "Use symbolic icons" msgstr "Szimbolikus ikonok használata" -#: gtk/gtkvolumebutton.c:169 +#: gtk/gtkvolumebutton.c:168 msgid "Whether to use symbolic icons" msgstr "Használandók-e szimbolikus ikonok?" -#: gtk/gtkwidget.c:1082 +#: gtk/gtkwidget.c:941 msgid "Widget name" msgstr "Felületi elem neve" -#: gtk/gtkwidget.c:1083 +#: gtk/gtkwidget.c:942 msgid "The name of the widget" msgstr "A felületi elem neve" -#: gtk/gtkwidget.c:1090 +#: gtk/gtkwidget.c:949 msgid "The parent widget of this widget." msgstr "A felületi elem szülő felületi eleme." -#: gtk/gtkwidget.c:1096 +#: gtk/gtkwidget.c:955 msgid "Width request" msgstr "Szélességkérés" -#: gtk/gtkwidget.c:1097 +#: gtk/gtkwidget.c:956 msgid "" "Override for width request of the widget, or -1 if natural request should be " "used" @@ -6759,11 +6766,11 @@ msgstr "" "A felületi elem szélességkérésének újradefiniálása, vagy -1, ha az eredeti " "kérést kell használni" -#: gtk/gtkwidget.c:1104 +#: gtk/gtkwidget.c:963 msgid "Height request" msgstr "Magasságkérés" -#: gtk/gtkwidget.c:1105 +#: gtk/gtkwidget.c:964 msgid "" "Override for height request of the widget, or -1 if natural request should " "be used" @@ -6771,247 +6778,255 @@ msgstr "" "A felületi elem magasságkérésének újradefiniálása, vagy -1, ha az eredeti " "kérést kell használni" -#: gtk/gtkwidget.c:1113 +#: gtk/gtkwidget.c:972 msgid "Whether the widget is visible" msgstr "Látható-e a felületi elem" -#: gtk/gtkwidget.c:1120 +#: gtk/gtkwidget.c:979 msgid "Whether the widget responds to input" msgstr "Válaszoljon-e a felületi elem a bemenetre" -#: gtk/gtkwidget.c:1126 +#: gtk/gtkwidget.c:985 msgid "Can focus" msgstr "Kaphat fókuszt" -#: gtk/gtkwidget.c:1127 +#: gtk/gtkwidget.c:986 msgid "Whether the widget can accept the input focus" msgstr "Képes-e elfogadni a felületi elem a beviteli fókuszt" -#: gtk/gtkwidget.c:1133 +#: gtk/gtkwidget.c:992 msgid "Has focus" msgstr "Rajta van a fókusz" -#: gtk/gtkwidget.c:1134 +#: gtk/gtkwidget.c:993 msgid "Whether the widget has the input focus" msgstr "Azt jelzi, hogy a felületi elemen van-e éppen a beviteli fókusz" -#: gtk/gtkwidget.c:1140 +#: gtk/gtkwidget.c:999 msgid "Is focus" msgstr "Fókusz-e" -#: gtk/gtkwidget.c:1141 +#: gtk/gtkwidget.c:1000 msgid "Whether the widget is the focus widget within the toplevel" msgstr "" "Azt jelzi, hogy a felületi elem a legfelső szint fókusz felületi eleme-e" -#: gtk/gtkwidget.c:1159 +#: gtk/gtkwidget.c:1016 msgid "Focus on click" msgstr "Fókusz kattintásra" -#: gtk/gtkwidget.c:1160 +#: gtk/gtkwidget.c:1017 msgid "Whether the widget should grab focus when it is clicked with the mouse" msgstr "Azt jelzi, hogy a felületi elem egérkattintásra megkapja-e a fókuszt" -#: gtk/gtkwidget.c:1166 +#: gtk/gtkwidget.c:1023 msgid "Can default" msgstr "Lehet alapértelmezett" -#: gtk/gtkwidget.c:1167 +#: gtk/gtkwidget.c:1024 msgid "Whether the widget can be the default widget" msgstr "Lehet-e a felületi elem az alapértelmezett felületi elem" -#: gtk/gtkwidget.c:1173 +#: gtk/gtkwidget.c:1030 msgid "Has default" msgstr "Alapértelmezett-e" -#: gtk/gtkwidget.c:1174 +#: gtk/gtkwidget.c:1031 msgid "Whether the widget is the default widget" msgstr "A felületi elem-e az alapértelmezett felületi elem" -#: gtk/gtkwidget.c:1180 +#: gtk/gtkwidget.c:1037 msgid "Receives default" msgstr "Fogadja az alapértelmezést" -#: gtk/gtkwidget.c:1181 +#: gtk/gtkwidget.c:1038 msgid "If TRUE, the widget will receive the default action when it is focused" msgstr "" "Ha IGAZ, akkor a felületi elem fogadja fókuszálás esetén az alapértelmezett " "műveletet" -#: gtk/gtkwidget.c:1202 +#: gtk/gtkwidget.c:1050 +msgid "The cursor to show when hoving above widget" +msgstr "A felületi elem felett megjelenítendő kurzor" + +#: gtk/gtkwidget.c:1064 msgid "Has tooltip" msgstr "Rendelkezik buboréksúgóval" -#: gtk/gtkwidget.c:1203 +#: gtk/gtkwidget.c:1065 msgid "Whether this widget has a tooltip" msgstr "A felületi elem rendelkezik-e buboréksúgóval" -#: gtk/gtkwidget.c:1226 +#: gtk/gtkwidget.c:1086 msgid "Tooltip Text" msgstr "Buboréksúgó szövege" -#: gtk/gtkwidget.c:1227 gtk/gtkwidget.c:1251 +#: gtk/gtkwidget.c:1087 gtk/gtkwidget.c:1109 msgid "The contents of the tooltip for this widget" msgstr "A buboréksúgó tartalma a felületi elemhez" -#: gtk/gtkwidget.c:1250 +#: gtk/gtkwidget.c:1108 msgid "Tooltip markup" msgstr "Buboréksúgó jelölőkódja" -#: gtk/gtkwidget.c:1265 -msgid "The widget’s window if it is realized" -msgstr "A felületi elem ablaka, ha az létrejött" +#: gtk/gtkwidget.c:1121 +msgid "The widget’s surface if it is realized" +msgstr "A felületi elem felülete, ha az létrejött" -#: gtk/gtkwidget.c:1279 +#: gtk/gtkwidget.c:1133 msgid "How to position in extra horizontal space" msgstr "Pozicionálás módja extra vízszintes térben" -#: gtk/gtkwidget.c:1294 +#: gtk/gtkwidget.c:1146 msgid "How to position in extra vertical space" msgstr "Pozicionálás módja extra függőleges térben" -#: gtk/gtkwidget.c:1313 +#: gtk/gtkwidget.c:1163 msgid "Margin on Start" msgstr "Kezdő margó" -#: gtk/gtkwidget.c:1314 +#: gtk/gtkwidget.c:1164 msgid "Pixels of extra space on the start" msgstr "Extra hely képpontokban a kezdetén" -#: gtk/gtkwidget.c:1333 +#: gtk/gtkwidget.c:1181 msgid "Margin on End" msgstr "Záró margó" -#: gtk/gtkwidget.c:1334 +#: gtk/gtkwidget.c:1182 msgid "Pixels of extra space on the end" msgstr "Extra hely képpontokban a végén" -#: gtk/gtkwidget.c:1352 +#: gtk/gtkwidget.c:1198 msgid "Margin on Top" msgstr "Felső margó" -#: gtk/gtkwidget.c:1353 +#: gtk/gtkwidget.c:1199 msgid "Pixels of extra space on the top side" msgstr "Extra hely képpontokban a felső oldalon" -#: gtk/gtkwidget.c:1371 +#: gtk/gtkwidget.c:1215 msgid "Margin on Bottom" msgstr "Alsó margó" -#: gtk/gtkwidget.c:1372 +#: gtk/gtkwidget.c:1216 msgid "Pixels of extra space on the bottom side" msgstr "Extra hely képpontokban az alsó oldalon" -#: gtk/gtkwidget.c:1387 +#: gtk/gtkwidget.c:1229 msgid "All Margins" msgstr "Minden margó" -#: gtk/gtkwidget.c:1388 +#: gtk/gtkwidget.c:1230 msgid "Pixels of extra space on all four sides" msgstr "Extra hely képpontokban mind a négy oldalon" -#: gtk/gtkwidget.c:1402 +#: gtk/gtkwidget.c:1242 msgid "Horizontal Expand" msgstr "Vízszintesen bővül" -#: gtk/gtkwidget.c:1403 +#: gtk/gtkwidget.c:1243 msgid "Whether widget wants more horizontal space" msgstr "A felületi elem igényel-e több vízszintes területet?" -#: gtk/gtkwidget.c:1416 +#: gtk/gtkwidget.c:1254 msgid "Horizontal Expand Set" msgstr "Vízszintes bővülés beállítva" -#: gtk/gtkwidget.c:1417 +#: gtk/gtkwidget.c:1255 msgid "Whether to use the hexpand property" msgstr "Használandó-e a hexpand tulajdonság" -#: gtk/gtkwidget.c:1430 +#: gtk/gtkwidget.c:1266 msgid "Vertical Expand" msgstr "Függőlegesen bővül" -#: gtk/gtkwidget.c:1431 +#: gtk/gtkwidget.c:1267 msgid "Whether widget wants more vertical space" msgstr "A felületi elem igényel-e több függőleges területet?" -#: gtk/gtkwidget.c:1444 +#: gtk/gtkwidget.c:1278 msgid "Vertical Expand Set" msgstr "Függőleges bővülés beállítva" -#: gtk/gtkwidget.c:1445 +#: gtk/gtkwidget.c:1279 msgid "Whether to use the vexpand property" msgstr "Használandó-e a vexpand tulajdonság" -#: gtk/gtkwidget.c:1458 +#: gtk/gtkwidget.c:1290 msgid "Expand Both" msgstr "Két irányban bővül" -#: gtk/gtkwidget.c:1459 +#: gtk/gtkwidget.c:1291 msgid "Whether widget wants to expand in both directions" msgstr "A felületi elem bővül-e mindkét irányba?" -#: gtk/gtkwidget.c:1475 +#: gtk/gtkwidget.c:1305 msgid "Opacity for Widget" msgstr "A felületi elem áttetszősége" -#: gtk/gtkwidget.c:1476 +#: gtk/gtkwidget.c:1306 msgid "The opacity of the widget, from 0 to 1" msgstr "A felületi elem áttetszősége 0 és 1 között" -#: gtk/gtkwidget.c:1491 +#: gtk/gtkwidget.c:1319 msgid "Scale factor" msgstr "Méretezési tényező" -#: gtk/gtkwidget.c:1492 +#: gtk/gtkwidget.c:1320 msgid "The scaling factor of the window" msgstr "Az ablak méretezési tényezője" -#: gtk/gtkwidget.c:1506 +#: gtk/gtkwidget.c:1332 msgid "CSS Name" msgstr "CSS név" -#: gtk/gtkwidget.c:1507 +#: gtk/gtkwidget.c:1333 msgid "The name of this widget in the CSS tree" msgstr "A felületi elem neve a CSS fában" -#: gtk/gtkwindow.c:844 +#: gtk/gtkwidgetpaintable.c:246 +msgid "Observed widget" +msgstr "Megfigyelt felületi elem" + +#: gtk/gtkwindow.c:826 msgid "Window Type" msgstr "Ablak típusa" -#: gtk/gtkwindow.c:845 +#: gtk/gtkwindow.c:827 msgid "The type of the window" msgstr "Az ablak típusa" -#: gtk/gtkwindow.c:852 +#: gtk/gtkwindow.c:834 msgid "Window Title" msgstr "Ablakcím" -#: gtk/gtkwindow.c:853 +#: gtk/gtkwindow.c:835 msgid "The title of the window" msgstr "Az ablak címe" -#: gtk/gtkwindow.c:859 +#: gtk/gtkwindow.c:841 msgid "Window Role" msgstr "Ablak szerepe" -#: gtk/gtkwindow.c:860 +#: gtk/gtkwindow.c:842 msgid "Unique identifier for the window to be used when restoring a session" msgstr "" "Az ablaknak egy munkamenet visszaállításakor használt egyedi azonosítója" -#: gtk/gtkwindow.c:875 +#: gtk/gtkwindow.c:855 msgid "Startup ID" msgstr "Indítási azonosító" -#: gtk/gtkwindow.c:876 +#: gtk/gtkwindow.c:856 msgid "Unique startup identifier for the window used by startup-notification" msgstr "Az ablaknak az indítási értesítő által használt egyedi azonosítója" -#: gtk/gtkwindow.c:883 +#: gtk/gtkwindow.c:863 msgid "If TRUE, users can resize the window" msgstr "Ha IGAZ, akkor a felhasználók átméretezhetik az ablakot" -#: gtk/gtkwindow.c:890 +#: gtk/gtkwindow.c:870 msgid "" "If TRUE, the window is modal (other windows are not usable while this one is " "up)" @@ -7019,80 +7034,93 @@ msgstr "" "Ha IGAZ, akkor az ablak kizárólagos (más ablakok nem használhatók addig, " "amíg ez látszik)" -#: gtk/gtkwindow.c:896 +#: gtk/gtkwindow.c:876 msgid "Window Position" msgstr "Ablakpozíció" -#: gtk/gtkwindow.c:897 +#: gtk/gtkwindow.c:877 msgid "The initial position of the window" msgstr "Az ablak kezdeti helye" -#: gtk/gtkwindow.c:904 +#: gtk/gtkwindow.c:884 msgid "Default Width" msgstr "Alapértelmezett szélesség" -#: gtk/gtkwindow.c:905 +#: gtk/gtkwindow.c:885 msgid "The default width of the window, used when initially showing the window" msgstr "" "Az ablak alapértelmezett szélessége; az ablak első megjelenítésekor " "használatos" -#: gtk/gtkwindow.c:912 +#: gtk/gtkwindow.c:892 msgid "Default Height" msgstr "Alapértelmezett magasság" -#: gtk/gtkwindow.c:913 +#: gtk/gtkwindow.c:893 msgid "" "The default height of the window, used when initially showing the window" msgstr "" "Az ablak alapértelmezett magassága; az ablak első megjelenítésekor " "használatos" -#: gtk/gtkwindow.c:920 +#: gtk/gtkwindow.c:900 msgid "Destroy with Parent" msgstr "Szülővel együtt megsemmisítendő" -#: gtk/gtkwindow.c:921 +#: gtk/gtkwindow.c:901 msgid "If this window should be destroyed when the parent is destroyed" msgstr "Az ablakot meg kell-e semmisíteni a szülővel együtt" -#: gtk/gtkwindow.c:928 +#: gtk/gtkwindow.c:907 +msgid "Hide on close" +msgstr "Elrejtés bezáráskor" + +#: gtk/gtkwindow.c:908 +msgid "If this window should be hidden when the user clicks the close button" +msgstr "" +"Az ablakot el kell-e rejteni, ha a felhasználó a bezárás gombra kattint" + +#: gtk/gtkwindow.c:916 msgid "Icon for this window" msgstr "Az ablak ikonja" -#: gtk/gtkwindow.c:944 +#: gtk/gtkwindow.c:930 msgid "Mnemonics Visible" msgstr "Hívóbetűk láthatók" -#: gtk/gtkwindow.c:945 +#: gtk/gtkwindow.c:931 msgid "Whether mnemonics are currently visible in this window" msgstr "A hívóbetűk láthatók-e ebben az ablakban?" -#: gtk/gtkwindow.c:961 +#: gtk/gtkwindow.c:945 msgid "Focus Visible" msgstr "Fókusz látható" -#: gtk/gtkwindow.c:962 +#: gtk/gtkwindow.c:946 msgid "Whether focus rectangles are currently visible in this window" msgstr "A fókusz téglalapok láthatók-e ebben az ablakban" -#: gtk/gtkwindow.c:977 +#: gtk/gtkwindow.c:959 msgid "Name of the themed icon for this window" msgstr "Az ablak témaikonja" -#: gtk/gtkwindow.c:990 +#: gtk/gtkwindow.c:966 +msgid "The display that will display this window" +msgstr "A megjelenítő, amely meg fogja jeleníteni ezt az ablakot" + +#: gtk/gtkwindow.c:972 msgid "Is Active" msgstr "Aktív-e" -#: gtk/gtkwindow.c:991 +#: gtk/gtkwindow.c:973 msgid "Whether the toplevel is the current active window" msgstr "A legfelső szintű-e a jelenlegi aktív ablak" -#: gtk/gtkwindow.c:997 +#: gtk/gtkwindow.c:979 msgid "Type hint" msgstr "Típussúgó" -#: gtk/gtkwindow.c:998 +#: gtk/gtkwindow.c:980 msgid "" "Hint to help the desktop environment understand what kind of window this is " "and how to treat it." @@ -7100,118 +7128,362 @@ msgstr "" "Segítség az asztali környezet számára, hogy megállapítsa, milyen ablak is ez " "és hogyan kell kezelni." -#: gtk/gtkwindow.c:1005 +#: gtk/gtkwindow.c:987 msgid "Skip taskbar" msgstr "Tálca kihagyása" -#: gtk/gtkwindow.c:1006 +#: gtk/gtkwindow.c:988 msgid "TRUE if the window should not be in the task bar." msgstr "Ha IGAZ, akkor az ablak nem jelenik meg a tálcán." -#: gtk/gtkwindow.c:1012 +#: gtk/gtkwindow.c:994 msgid "Skip pager" msgstr "Lapozó kihagyása" -#: gtk/gtkwindow.c:1013 +#: gtk/gtkwindow.c:995 msgid "TRUE if the window should not be in the pager." msgstr "Ha IGAZ, akkor az ablak nem jelenik meg a lapozóban." -#: gtk/gtkwindow.c:1019 +#: gtk/gtkwindow.c:1001 msgid "Urgent" msgstr "Sürgős" -#: gtk/gtkwindow.c:1020 +#: gtk/gtkwindow.c:1002 msgid "TRUE if the window should be brought to the user’s attention." msgstr "" "Ha IGAZ, akkor az ablaknak fel kell hívnia magára a felhasználó figyelmét." -#: gtk/gtkwindow.c:1033 +#: gtk/gtkwindow.c:1013 msgid "Accept focus" msgstr "Fókusz fogadása" -#: gtk/gtkwindow.c:1034 +#: gtk/gtkwindow.c:1014 msgid "TRUE if the window should receive the input focus." msgstr "Ha IGAZ, akkor az ablaknak kell fogadnia a beviteli fókuszt." -#: gtk/gtkwindow.c:1047 +#: gtk/gtkwindow.c:1025 msgid "Focus on map" msgstr "Fókusz leképezéskor" -#: gtk/gtkwindow.c:1048 +#: gtk/gtkwindow.c:1026 msgid "TRUE if the window should receive the input focus when mapped." msgstr "" "Ha IGAZ, akkor az ablaknak kell fogadnia a beviteli fókuszt leképezett " "állapotban." -#: gtk/gtkwindow.c:1061 +#: gtk/gtkwindow.c:1037 msgid "Decorated" msgstr "Díszített" -#: gtk/gtkwindow.c:1062 +#: gtk/gtkwindow.c:1038 msgid "Whether the window should be decorated by the window manager" msgstr "Díszítse-e az ablakkezelő az ablakot." -#: gtk/gtkwindow.c:1075 +#: gtk/gtkwindow.c:1049 msgid "Deletable" msgstr "Törölhető" -#: gtk/gtkwindow.c:1076 +#: gtk/gtkwindow.c:1050 msgid "Whether the window frame should have a close button" msgstr "Az ablakkeret rendelkezzen-e bezárás gombbal" -#: gtk/gtkwindow.c:1090 +#: gtk/gtkwindow.c:1062 msgid "Gravity" msgstr "Gravitáció" -#: gtk/gtkwindow.c:1091 +#: gtk/gtkwindow.c:1063 msgid "The window gravity of the window" msgstr "Az ablak gravitációja" -#: gtk/gtkwindow.c:1126 +#: gtk/gtkwindow.c:1094 msgid "Attached to Widget" msgstr "Csatolva ezen felületi elemhez" -#: gtk/gtkwindow.c:1127 +#: gtk/gtkwindow.c:1095 msgid "The widget where the window is attached" msgstr "A felületi elem, amelyhez az ablak csatolva van" -#: gtk/gtkwindow.c:1133 +#: gtk/gtkwindow.c:1101 msgid "Is maximized" msgstr "Maximalizálva van-e" -#: gtk/gtkwindow.c:1134 +#: gtk/gtkwindow.c:1102 msgid "Whether the window is maximized" msgstr "Az ablak teljes méretű-e" -#: gtk/gtkwindow.c:1155 +#: gtk/gtkwindow.c:1121 msgid "GtkApplication" msgstr "GtkApplication" -#: gtk/gtkwindow.c:1156 +#: gtk/gtkwindow.c:1122 msgid "The GtkApplication for the window" msgstr "Az ablak GtkApplication objektuma" -#: modules/printbackends/cloudprint/gtkprintercloudprint.c:137 +#: modules/media/gtkgstsink.c:241 +msgid "paintable" +msgstr "kifesthető" + +#: modules/media/gtkgstsink.c:242 +msgid "Paintable providing the picture" +msgstr "A kifesthető, amely a képet biztosítja" + +#: modules/printbackends/gtkprintercloudprint.c:137 msgid "Cloud Print account" msgstr "Cloud Print fiók" -#: modules/printbackends/cloudprint/gtkprintercloudprint.c:138 +#: modules/printbackends/gtkprintercloudprint.c:138 msgid "GtkCloudprintAccount instance" msgstr "GtkCloudprintAccount példány" -#: modules/printbackends/cloudprint/gtkprintercloudprint.c:147 +#: modules/printbackends/gtkprintercloudprint.c:147 msgid "Printer ID" msgstr "Nyomtatóazonosító" -#: modules/printbackends/cloudprint/gtkprintercloudprint.c:148 +#: modules/printbackends/gtkprintercloudprint.c:148 msgid "Cloud Print printer ID" msgstr "Cloud Print nyomtatóazonosító" -#: modules/printbackends/cups/gtkprintercups.c:93 +#: modules/printbackends/gtkprintercups.c:93 msgid "Color Profile Title" msgstr "Színprofil neve" -#: modules/printbackends/cups/gtkprintercups.c:94 +#: modules/printbackends/gtkprintercups.c:94 msgid "The title of the color profile to use" msgstr "A használandó színprofil neve" +#~ msgid "Symbolic size to use for named icon" +#~ msgstr "A megnevezett ikon szimbolikus mérete" + +#~ msgid "FrameClock" +#~ msgstr "FrameClock" + +#~ msgid "The associated GdkFrameClock" +#~ msgstr "A társított GdkFrameClock" + +#~ msgid "Cursor type" +#~ msgstr "Kurzortípus" + +#~ msgid "Standard cursor type" +#~ msgstr "Szabványos kurzortípus" + +#~ msgid "Device manager" +#~ msgstr "Eszközkezelő" + +#~ msgid "Device manager which the device belongs to" +#~ msgstr "Az eszközkezelő, amelyhez az eszköz tartozik" + +#~ msgid "Display for the device manager" +#~ msgstr "Az eszközkezelő kijelzője" + +#~ msgid "Window" +#~ msgstr "Ablak" + +#~ msgid "Font resolution" +#~ msgstr "Betűfelbontás" + +#~ msgid "The resolution for fonts on the screen" +#~ msgstr "A képernyő betűinek felbontása" + +#~ msgid "surface" +#~ msgstr "Felület" + +#~ msgid "Detail" +#~ msgstr "Részletek" + +#~ msgid "Render detail to pass to the theme engine" +#~ msgstr "A témakezelő alrendszernek átadandó megjelenítési részletek" + +#~ msgid "Primary pixbuf" +#~ msgstr "Elsődleges pixbuf" + +#~ msgid "Secondary pixbuf" +#~ msgstr "Másodlagos pixbuf" + +#~ msgid "Label fill" +#~ msgstr "Címkekitöltés" + +#~ msgid "Whether the label widget should fill all available horizontal space" +#~ msgstr "" +#~ "A címke felületi elemnek ki kell-e töltenie az összes rendelkezésre álló " +#~ "területet?" + +#~ msgid "Font name" +#~ msgstr "Betűkészlet neve" + +#~ msgid "The name of the selected font" +#~ msgstr "A kiválasztott betűkészlet neve" + +#~ msgid "Show style" +#~ msgstr "Stílus megjelenítése" + +#~ msgid "Whether the selected font style is shown in the label" +#~ msgstr "A címkében a kiválasztott betűstílus legyen-e megjelenítve" + +#~ msgid "Show size" +#~ msgstr "Méret megjelenítése" + +#~ msgid "Whether selected font size is shown in the label" +#~ msgstr "A címkében a kiválasztott betűméret legyen-e megjelenítve" + +#~ msgid "Label yalign" +#~ msgstr "Címke függőleges igazítása" + +#~ msgid "The vertical alignment of the label" +#~ msgstr "A címke függőleges igazítása" + +#~ msgid "Has alpha" +#~ msgstr "Van alfája" + +#~ msgid "Whether the color buffer has an alpha component" +#~ msgstr "A színpuffernek van-e alfa összetevője" + +#~ msgid "Show decorations" +#~ msgstr "Dekorációk megjelenítése" + +#~ msgid "Pixbuf" +#~ msgstr "Pixbuf" + +#~ msgid "A cairo_surface_t to display" +#~ msgstr "A megjelenítendő cairo_surface_t objektum" + +#~ msgid "Animation" +#~ msgstr "Animáció" + +#~ msgid "GdkPixbufAnimation to display" +#~ msgstr "A megjelenítendő GdkPixbuf animáció" + +#~ msgid "Screen" +#~ msgstr "Képernyő" + +#~ msgid "Recent Manager" +#~ msgstr "Előzménykezelő" + +#~ msgid "The RecentManager object to use" +#~ msgstr "A használandó RecentManager objektum" + +#~ msgid "Show Private" +#~ msgstr "Privát megjelenítése" + +#~ msgid "Show Tooltips" +#~ msgstr "Buboréksúgók megjelenítése" + +#~ msgid "Whether there should be a tooltip on the item" +#~ msgstr "Az elem buboréksúgója meg legyen-e jelenítve" + +#~ msgid "Show Icons" +#~ msgstr "Ikonok megjelenítése" + +#~ msgid "Whether there should be an icon near the item" +#~ msgstr "Megjelenjen-e ikon az elem közelében" + +#~ msgid "Show Not Found" +#~ msgstr "Nem találhatók megjelenítése" + +#~ msgid "" +#~ "Whether the items pointing to unavailable resources should be displayed" +#~ msgstr "" +#~ "Megjelenítésre kerüljenek-e az el nem érhető erőforrásokra mutató elemek" + +#~ msgid "Whether to allow multiple items to be selected" +#~ msgstr "Lehet-e egyszerre több elemet kijelölni" + +#~ msgid "Local only" +#~ msgstr "Csak helyi" + +#~ msgid "" +#~ "Whether the selected resource(s) should be limited to local file: URIs" +#~ msgstr "A kijelölt erőforrások csak helyi file: URI-címek lehetnek-e" + +#~ msgid "Limit" +#~ msgstr "Korlátozás" + +#~ msgid "The maximum number of items to be displayed" +#~ msgstr "A megjelenítendő elemek legnagyobb száma" + +#~ msgid "Sort Type" +#~ msgstr "Rendezés típusa" + +#~ msgid "The sorting order of the items displayed" +#~ msgstr "A megjelenített elemek rendezési sorrendje" + +#~ msgid "The current filter for selecting which resources are displayed" +#~ msgstr "A megjelenítendő erőforrások kiválasztására használt aktuális szűrő" + +#~ msgid "Show Numbers" +#~ msgstr "Számok megjelenítése" + +#~ msgid "Whether the items should be displayed with a number" +#~ msgstr "Az elemek egy számmal együtt kerüljenek-e megjelenítésre" + +#~ msgid "The icon size" +#~ msgstr "Az ikon mérete" + +#~ msgid "GTK Modules" +#~ msgstr "GTK-modulok" + +#~ msgid "List of currently active GTK modules" +#~ msgstr "Az éppen aktív GTK-modulok listája" + +#~ msgid "Size of icons in this toolbar" +#~ msgstr "Az eszköztár ikonjainak mérete" + +#~ msgid "Whether the icon-size property has been set" +#~ msgstr "Az ikonméret tulajdonság be van-e állítva" + +#~ msgid "The human-readable title of this item group" +#~ msgstr "Az elemcsoport emberek által olvasható leírása" + +#~ msgid "A widget to display in place of the usual label" +#~ msgstr "A szokásos címke helyén megjelenítendő felületi elem" + +#~ msgid "Collapsed" +#~ msgstr "Összecsukott" + +#~ msgid "Whether the group has been collapsed and items are hidden" +#~ msgstr "A csoport össze van-e csukva, és az elemei el vannak-e rejtve?" + +#~ msgid "ellipsize" +#~ msgstr "kihagyás" + +#~ msgid "Ellipsize for item group headers" +#~ msgstr "Az elemcsoport fejléceinek kihagyása" + +#~ msgid "Header Relief" +#~ msgstr "Fejléc kiemelése" + +#~ msgid "Relief of the group header button" +#~ msgstr "A csoportfejlécgombok kiemelése" + +#~ msgid "Whether the item should receive extra space when the group grows" +#~ msgstr "Az elem kapjon-e extra területet, ha a csoport nő" + +#~ msgid "Fill" +#~ msgstr "Kitöltés" + +#~ msgid "Whether the item should fill the available space" +#~ msgstr "Az elemnek ki kell-e töltenie a rendelkezésre álló területet?" + +#~ msgid "New Row" +#~ msgstr "Új sor" + +#~ msgid "Whether the item should start a new row" +#~ msgstr "Az elemnek új sort kell-e kezdenie?" + +#~ msgid "Position of the item within this group" +#~ msgstr "Az elem pozíciója a csoporton belül" + +#~ msgid "Size of icons in this tool palette" +#~ msgstr "Az eszközpaletta ikonjainak mérete" + +#~ msgid "Style of items in the tool palette" +#~ msgstr "Az eszközpaletta elemeinek stílusa" + +#~ msgid "Exclusive" +#~ msgstr "Kizárólagos" + +#~ msgid "Whether the item group should be the only expanded at a given time" +#~ msgstr "Az elemcsoport csak adott időben kerüljön-e kiterjesztésre?" + +#~ msgid "" +#~ "Whether the item group should receive extra space when the palette grows" +#~ msgstr "Az elemcsoport csak akkor kapjon-e extra területet, ha a paletta nő" diff --git a/po/POTFILES.in b/po/POTFILES.in index 4b6e40f0e6..8548e6729f 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -10,7 +10,7 @@ gdk/gdkcursor.c gdk/gdkdevice.c gdk/gdkdisplay.c gdk/gdkdisplaymanager.c -gdk/gdkdnd.c +gdk/gdkdrag.c gdk/gdkdrawcontext.c gdk/gdkdrop.c gdk/gdkevents.c diff --git a/tests/testdnd.c b/tests/testdnd.c index 53fb07788b..0f517dea92 100644 --- a/tests/testdnd.c +++ b/tests/testdnd.c @@ -314,7 +314,7 @@ target_drag_motion (GtkWidget *widget, gint y) { GtkWidget *source_widget; - GdkDragContext *drag; + GdkDrag *drag; char *s; if (!have_drag) @@ -418,7 +418,7 @@ label_drag_data_received (GtkWidget *widget, void source_drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data, gpointer data) { @@ -565,7 +565,7 @@ popsite_leave (GtkWidget *widget, void source_drag_data_delete (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, gpointer data) { g_print ("Delete the data!\n"); diff --git a/tests/testdnd2.c b/tests/testdnd2.c index 613caa8c8c..b94362e57c 100644 --- a/tests/testdnd2.c +++ b/tests/testdnd2.c @@ -39,7 +39,7 @@ enum { static void image_drag_begin (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, gpointer data) { GdkPaintable *paintable; @@ -65,7 +65,7 @@ image_drag_begin (GtkWidget *widget, hot_y = size; break; } - gtk_drag_set_icon_paintable (context, paintable, hot_x, hot_y); + gtk_drag_set_icon_paintable (drag, paintable, hot_x, hot_y); g_object_unref (paintable); } @@ -80,7 +80,9 @@ drag_widget_destroyed (GtkWidget *image, gpointer data) } static void -window_drag_end (GtkWidget *widget, GdkDragContext *context, gpointer data) +window_drag_end (GtkWidget *widget, + GdkDrag *drag, + gpointer data) { GtkWidget *window = data; @@ -90,7 +92,7 @@ window_drag_end (GtkWidget *widget, GdkDragContext *context, gpointer data) static void window_drag_begin (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, gpointer data) { GdkPaintable *paintable; @@ -114,7 +116,7 @@ window_drag_begin (GtkWidget *widget, else g_print ("reusing drag widget\n"); - gtk_drag_set_icon_widget (context, image, 0, 0); + gtk_drag_set_icon_widget (drag, image, 0, 0); if (hotspot == CENTER) g_signal_connect (widget, "drag-end", G_CALLBACK (window_drag_end), image); @@ -153,7 +155,7 @@ update_dest_target_list (GtkWidget *image) void image_drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data, gpointer data) { @@ -264,7 +266,7 @@ make_image2 (const gchar *icon_name, int hotspot) static void spinner_drag_begin (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, gpointer data) { GtkWidget *spinner; @@ -274,25 +276,25 @@ spinner_drag_begin (GtkWidget *widget, "visible", TRUE, "active", TRUE, NULL); - gtk_drag_set_icon_widget (context, spinner, 0, 0); - g_object_set_data (G_OBJECT (context), "spinner", spinner); + gtk_drag_set_icon_widget (drag, spinner, 0, 0); + g_object_set_data (G_OBJECT (drag), "spinner", spinner); } static void spinner_drag_end (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, gpointer data) { GtkWidget *spinner; g_print ("GtkWidget::drag-end\n"); - spinner = g_object_get_data (G_OBJECT (context), "spinner"); + spinner = g_object_get_data (G_OBJECT (drag), "spinner"); gtk_widget_destroy (spinner); } static gboolean spinner_drag_failed (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkDragResult result, gpointer data) { @@ -309,7 +311,7 @@ spinner_drag_failed (GtkWidget *widget, void spinner_drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data, gpointer data) { diff --git a/tests/testentryicons.c b/tests/testentryicons.c index 245ab1da2c..bbc8eeb4bd 100644 --- a/tests/testentryicons.c +++ b/tests/testentryicons.c @@ -2,7 +2,7 @@ #include <stdio.h> static void -clear_pressed (GtkEntry *entry, gint icon, GdkEvent *event, gpointer data) +clear_pressed (GtkEntry *entry, gint icon, gpointer data) { if (icon == GTK_ENTRY_ICON_SECONDARY) gtk_entry_set_text (entry, ""); @@ -10,19 +10,19 @@ clear_pressed (GtkEntry *entry, gint icon, GdkEvent *event, gpointer data) static void drag_begin_cb (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, gpointer user_data) { gint pos; pos = gtk_entry_get_current_icon_drag_source (GTK_ENTRY (widget)); if (pos != -1) - gtk_drag_set_icon_name (context, "dialog-information", 2, 2); + gtk_drag_set_icon_name (drag, "dialog-information", 2, 2); } static void drag_data_get_cb (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *data, gpointer user_data) { diff --git a/tests/testimage.c b/tests/testimage.c index 4001bd67fb..2e2d5da50b 100644 --- a/tests/testimage.c +++ b/tests/testimage.c @@ -20,19 +20,19 @@ static void drag_begin (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, gpointer data) { GtkWidget *image = GTK_WIDGET (data); GdkPaintable *paintable; paintable = gtk_image_get_paintable (GTK_IMAGE (image)); - gtk_drag_set_icon_paintable (context, paintable, -2, -2); + gtk_drag_set_icon_paintable (drag, paintable, -2, -2); } void drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data, gpointer data) { @@ -46,7 +46,7 @@ drag_data_get (GtkWidget *widget, static void drag_data_received (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data, guint info, guint32 time, diff --git a/tests/testlist3.c b/tests/testlist3.c index 13c8a94e5a..2f6aba8450 100644 --- a/tests/testlist3.c +++ b/tests/testlist3.c @@ -6,7 +6,7 @@ static const char *entries[] = { static void drag_begin (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, gpointer data) { GtkWidget *row; @@ -19,7 +19,7 @@ drag_begin (GtkWidget *widget, paintable = gtk_widget_paintable_new (row); gtk_widget_translate_coordinates (widget, row, 0, 0, &x, &y); - gtk_drag_set_icon_paintable (context, paintable, -x, -y); + gtk_drag_set_icon_paintable (drag, paintable, -x, -y); g_object_unref (paintable); } @@ -27,7 +27,7 @@ drag_begin (GtkWidget *widget, void drag_data_get (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, GtkSelectionData *selection_data, gpointer data) { diff --git a/tests/testnotebookdnd.c b/tests/testnotebookdnd.c index 5771896128..a0b321eb41 100644 --- a/tests/testnotebookdnd.c +++ b/tests/testnotebookdnd.c @@ -93,7 +93,7 @@ on_page_reordered (GtkNotebook *notebook, GtkWidget *child, guint page_num, gpoi static void on_notebook_drag_begin (GtkWidget *widget, - GdkDragContext *context, + GdkDrag *drag, gpointer data) { guint page_num; @@ -101,7 +101,7 @@ on_notebook_drag_begin (GtkWidget *widget, page_num = gtk_notebook_get_current_page (GTK_NOTEBOOK (widget)); if (page_num > 2) - gtk_drag_set_icon_name (context, + gtk_drag_set_icon_name (drag, (page_num % 2) ? "help-browser" : "process-stop", 0, 0); } diff --git a/testsuite/gtk/defaultvalue.c b/testsuite/gtk/defaultvalue.c index 3ae0850868..4b559a0d23 100644 --- a/testsuite/gtk/defaultvalue.c +++ b/testsuite/gtk/defaultvalue.c @@ -96,20 +96,20 @@ test_type (gconstpointer data) if (g_type_is_a (type, GTK_TYPE_FILE_CHOOSER_BUTTON) || g_type_is_a (type, GTK_TYPE_FILE_CHOOSER_DIALOG) || g_type_is_a (type, GTK_TYPE_FILE_CHOOSER_WIDGET) || - g_type_is_a (type, GTK_TYPE_PLACES_SIDEBAR)) + g_str_equal (g_type_name (type), "GtkPlacesSidebar")) return; klass = g_type_class_ref (type); if (g_type_is_a (type, GTK_TYPE_SETTINGS)) - instance = g_object_ref (gtk_settings_get_default ()); + instance = G_OBJECT (g_object_ref (gtk_settings_get_default ())); else if (g_type_is_a (type, GDK_TYPE_SURFACE)) { - instance = g_object_ref (gdk_surface_new_popup (gdk_display_get_default (), - 0, - &(GdkRectangle) { 0, 0, 100, 100 })); + instance = G_OBJECT (g_object_ref (gdk_surface_new_popup (display, + &(GdkRectangle) { 0, 0, 100, 100 }))); } - else if (g_str_equal (g_type_name (type), "GdkX11Cursor")) + else if (g_type_is_a (type, GDK_TYPE_CLIPBOARD) || + g_str_equal (g_type_name (type), "GdkX11Cursor")) instance = g_object_new (type, "display", display, NULL); else instance = g_object_new (type, NULL); @@ -129,6 +129,20 @@ test_type (gconstpointer data) if ((pspec->flags & G_PARAM_READABLE) == 0) continue; + if (g_type_is_a (type, GDK_TYPE_CLIPBOARD) && + strcmp (pspec->name, "display") == 0) + continue; + + /* These are set in init() */ + if ((g_type_is_a (type, GDK_TYPE_CLIPBOARD) || + g_type_is_a (type, GDK_TYPE_CONTENT_PROVIDER)) && + strcmp (pspec->name, "formats") == 0) + continue; + + if (g_type_is_a (type, GDK_TYPE_CONTENT_PROVIDER) && + strcmp (pspec->name, "storable-formats") == 0) + continue; + /* This one has a special-purpose default value */ if (g_type_is_a (type, GTK_TYPE_DIALOG) && (strcmp (pspec->name, "use-header-bar") == 0)) @@ -214,6 +228,15 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS strcmp (pspec->name, "cell-area-context") == 0)) continue; +G_GNUC_END_IGNORE_DEPRECATIONS + + /* This is set in init() */ + if (g_type_is_a (type, GTK_TYPE_FONT_CHOOSER_WIDGET) && + strcmp (pspec->name, "tweak-action") == 0) + continue; + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS + if (g_type_is_a (type, GTK_TYPE_ICON_VIEW) && (strcmp (pspec->name, "cell-area") == 0 || strcmp (pspec->name, "cell-area-context") == 0)) @@ -295,10 +318,6 @@ G_GNUC_END_IGNORE_DEPRECATIONS strcmp (pspec->name, "buffer") == 0) continue; - if (g_type_is_a (type, GTK_TYPE_TOOL_ITEM_GROUP) && - strcmp (pspec->name, "label-widget") == 0) - continue; - if (g_type_is_a (type, GTK_TYPE_TREE_VIEW) && (strcmp (pspec->name, "hadjustment") == 0 || strcmp (pspec->name, "vadjustment") == 0)) @@ -326,7 +345,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS continue; /* show-desktop depends on desktop environment */ - if (g_type_is_a (type, GTK_TYPE_PLACES_SIDEBAR) && + if (g_str_equal (g_type_name (type), "GtkPlacesSidebar") && strcmp (pspec->name, "show-desktop") == 0) continue; @@ -341,11 +360,13 @@ G_GNUC_END_IGNORE_DEPRECATIONS strcmp (pspec->name, "adjustment") == 0) continue; - if (g_test_verbose ()) - g_print ("Property %s.%s\n", - g_type_name (pspec->owner_type), - pspec->name); + { + g_print ("Property %s:%s\n", + g_type_name (pspec->owner_type), + pspec->name); + } + g_value_init (&value, G_PARAM_SPEC_VALUE_TYPE (pspec)); g_object_get_property (instance, pspec->name, &value); check_property ("Property", pspec, &value); diff --git a/testsuite/gtk/meson.build b/testsuite/gtk/meson.build index d2febc485c..319eb14343 100644 --- a/testsuite/gtk/meson.build +++ b/testsuite/gtk/meson.build @@ -17,6 +17,7 @@ tests = [ ['cellarea'], ['check-icon-names'], ['cssprovider'], + ['defaultvalue'], ['entry'], ['firefox-stylecontext'], ['floating'], diff --git a/testsuite/gtk/notify.c b/testsuite/gtk/notify.c index a3eb23ebdc..79b4e03406 100644 --- a/testsuite/gtk/notify.c +++ b/testsuite/gtk/notify.c @@ -505,21 +505,6 @@ test_type (gconstpointer data) g_str_equal (pspec->name, "page")) continue; - if (g_type_is_a (pspec->owner_type, GTK_TYPE_TOGGLE_BUTTON) && - g_str_equal (pspec->name, "draw-indicator")) - continue; - - if (g_str_equal (g_type_name (type), "GtkRecentChooserMenu") && - g_str_equal (pspec->name, "select-multiple")) - continue; - - /* Really a bug in the way GtkButton and its subclasses interact: - * setting label etc on a subclass destroys the content, breaking - * e.g. GtkColorButton pretty badly - */ - if (type == GTK_TYPE_COLOR_BUTTON && pspec->owner_type == GTK_TYPE_BUTTON) - continue; - /* Too many special cases involving -set properties */ if (g_str_equal (g_type_name (pspec->owner_type), "GtkCellRendererText") || g_str_equal (g_type_name (pspec->owner_type), "GtkTextTag")) @@ -529,40 +514,6 @@ test_type (gconstpointer data) if (g_str_equal (g_type_name (pspec->owner_type), "GtkComboBox")) continue; - /* Deprecated, not getting fixed */ - if (g_str_equal (g_type_name (pspec->owner_type), "GtkAction")) - continue; - - if (g_type_is_a (pspec->owner_type, GTK_TYPE_CONTAINER) && - g_str_equal (pspec->name, "resize-mode")) - continue; - - if (g_type_is_a (pspec->owner_type, GTK_TYPE_COLOR_BUTTON) && - g_str_equal (pspec->name, "alpha")) - continue; - - if (g_type_is_a (pspec->owner_type, GTK_TYPE_CELL_RENDERER_PIXBUF) && - (g_str_equal (pspec->name, "stock-id") || - g_str_equal (pspec->name, "stock-size"))) - continue; - - if (g_type_is_a (pspec->owner_type, GTK_TYPE_MENU) && - g_str_equal (pspec->name, "tearoff-state")) - continue; - - if (g_type_is_a (pspec->owner_type, GTK_TYPE_WIDGET) && - g_str_equal (pspec->name, "double-buffered")) - continue; - - if (g_type_is_a (pspec->owner_type, GTK_TYPE_WINDOW) && - g_str_equal (pspec->name, "has-resize-grip")) - continue; - - /* Can only be set on window widgets */ - if (pspec->owner_type == GTK_TYPE_WIDGET && - g_str_equal (pspec->name, "events")) - continue; - /* Can only be set on unmapped windows */ if (pspec->owner_type == GTK_TYPE_WINDOW && g_str_equal (pspec->name, "type-hint")) @@ -606,10 +557,6 @@ test_type (gconstpointer data) g_str_equal (pspec->name, "im-module")) continue; - if (pspec->owner_type == GTK_TYPE_TOOLBAR && - g_str_equal (pspec->name, "icon-size")) - continue; - if (pspec->owner_type == GTK_TYPE_TREE_SELECTION && g_str_equal (pspec->name, "mode")) /* requires a treeview */ continue; @@ -643,10 +590,6 @@ test_type (gconstpointer data) g_str_equal (pspec->name, "font")) continue; - if (g_type_is_a (type, GTK_TYPE_FONT_BUTTON) && - g_str_equal (pspec->name, "font-name")) - continue; - /* these depend on the min-content- properties in a way that breaks our test */ if (g_type_is_a (type, GTK_TYPE_SCROLLED_WINDOW) && (g_str_equal (pspec->name, "max-content-width") || diff --git a/testsuite/gtk/object.c b/testsuite/gtk/object.c index 7939b59e56..128b974714 100644 --- a/testsuite/gtk/object.c +++ b/testsuite/gtk/object.c @@ -76,7 +76,6 @@ list_ignore_properties (gboolean buglist) { "GtkFileChooserDialog", "select-multiple", (void*) MATCH_ANY_VALUE }, /* property disabled */ { "GtkMenu", "accel-path", (void*) MATCH_ANY_VALUE }, /* has odd restrictions in the setter */ { "GtkMenuItem", "accel-path", (void*) MATCH_ANY_VALUE }, /* has odd restrictions in the setter */ - { "GtkRecentChooserMenu", "select-multiple", (void*) MATCH_ANY_VALUE }, /* property disabled */ { "GtkTextView", "overwrite", (void*) MATCH_ANY_VALUE }, /* needs text buffer */ { "GtkTreeView", "expander-column", (void*) MATCH_ANY_VALUE }, /* assertion list != NULL */ { "GtkWindow", "display", (void*) MATCH_ANY_VALUE }, diff --git a/testsuite/reftests/reftest-snapshot.c b/testsuite/reftests/reftest-snapshot.c index 2640050dd8..b84d2f5832 100644 --- a/testsuite/reftests/reftest-snapshot.c +++ b/testsuite/reftests/reftest-snapshot.c @@ -108,8 +108,7 @@ snapshot_window_native (GdkSurface *window, XWindowAttributes attrs; if (gdk_surface_get_surface_type (window) == GDK_SURFACE_TOPLEVEL || - gdk_surface_get_surface_type (window) == GDK_SURFACE_TEMP || - gdk_surface_get_surface_type (window) == GDK_SURFACE_FOREIGN) + gdk_surface_get_surface_type (window) == GDK_SURFACE_TEMP) { /* give the WM/server some time to sync. They need it. * Also, do use popups instead of toplevels in your tests |