mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-02 17:00:19 +00:00
gtk: clean up GtkWidget signals
- add slots for damage-event, move-focus and keynav-failed - reorder signals a bit so related stuff is grouped together - some indentation fixes in the GtkWidgetClass - remove the move-focus compat hack from GtkTextView - turn the move-focus compat hack in GtkWindow into properly implementing GtkWidget::move-focus()
This commit is contained in:
parent
ef9a6f205c
commit
c2f29f2cef
@ -308,8 +308,6 @@ static void gtk_text_view_draw_focus (GtkWidget *widget,
|
|||||||
cairo_t *cr);
|
cairo_t *cr);
|
||||||
static gboolean gtk_text_view_focus (GtkWidget *widget,
|
static gboolean gtk_text_view_focus (GtkWidget *widget,
|
||||||
GtkDirectionType direction);
|
GtkDirectionType direction);
|
||||||
static void gtk_text_view_move_focus (GtkWidget *widget,
|
|
||||||
GtkDirectionType direction_type);
|
|
||||||
static void gtk_text_view_select_all (GtkWidget *widget,
|
static void gtk_text_view_select_all (GtkWidget *widget,
|
||||||
gboolean select);
|
gboolean select);
|
||||||
|
|
||||||
@ -379,8 +377,7 @@ static void gtk_text_view_copy_clipboard (GtkTextView *text_view);
|
|||||||
static void gtk_text_view_paste_clipboard (GtkTextView *text_view);
|
static void gtk_text_view_paste_clipboard (GtkTextView *text_view);
|
||||||
static void gtk_text_view_toggle_overwrite (GtkTextView *text_view);
|
static void gtk_text_view_toggle_overwrite (GtkTextView *text_view);
|
||||||
static void gtk_text_view_toggle_cursor_visible (GtkTextView *text_view);
|
static void gtk_text_view_toggle_cursor_visible (GtkTextView *text_view);
|
||||||
static void gtk_text_view_compat_move_focus(GtkTextView *text_view,
|
|
||||||
GtkDirectionType direction_type);
|
|
||||||
static void gtk_text_view_unselect (GtkTextView *text_view);
|
static void gtk_text_view_unselect (GtkTextView *text_view);
|
||||||
|
|
||||||
static void gtk_text_view_validate_onscreen (GtkTextView *text_view);
|
static void gtk_text_view_validate_onscreen (GtkTextView *text_view);
|
||||||
@ -593,14 +590,6 @@ gtk_text_view_class_init (GtkTextViewClass *klass)
|
|||||||
widget_class->motion_notify_event = gtk_text_view_motion_event;
|
widget_class->motion_notify_event = gtk_text_view_motion_event;
|
||||||
widget_class->draw = gtk_text_view_draw;
|
widget_class->draw = gtk_text_view_draw;
|
||||||
widget_class->focus = gtk_text_view_focus;
|
widget_class->focus = gtk_text_view_focus;
|
||||||
|
|
||||||
/* need to override the base class function via override_class_handler,
|
|
||||||
* because the signal slot is not available in GtkWidgetCLass
|
|
||||||
*/
|
|
||||||
g_signal_override_class_handler ("move-focus",
|
|
||||||
GTK_TYPE_TEXT_VIEW,
|
|
||||||
G_CALLBACK (gtk_text_view_move_focus));
|
|
||||||
|
|
||||||
widget_class->drag_begin = gtk_text_view_drag_begin;
|
widget_class->drag_begin = gtk_text_view_drag_begin;
|
||||||
widget_class->drag_end = gtk_text_view_drag_end;
|
widget_class->drag_end = gtk_text_view_drag_end;
|
||||||
widget_class->drag_data_get = gtk_text_view_drag_data_get;
|
widget_class->drag_data_get = gtk_text_view_drag_data_get;
|
||||||
@ -626,7 +615,6 @@ gtk_text_view_class_init (GtkTextViewClass *klass)
|
|||||||
klass->copy_clipboard = gtk_text_view_copy_clipboard;
|
klass->copy_clipboard = gtk_text_view_copy_clipboard;
|
||||||
klass->paste_clipboard = gtk_text_view_paste_clipboard;
|
klass->paste_clipboard = gtk_text_view_paste_clipboard;
|
||||||
klass->toggle_overwrite = gtk_text_view_toggle_overwrite;
|
klass->toggle_overwrite = gtk_text_view_toggle_overwrite;
|
||||||
klass->move_focus = gtk_text_view_compat_move_focus;
|
|
||||||
klass->set_scroll_adjustments = gtk_text_view_set_scroll_adjustments;
|
klass->set_scroll_adjustments = gtk_text_view_set_scroll_adjustments;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -4932,17 +4920,6 @@ gtk_text_view_focus (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
gtk_text_view_move_focus (GtkWidget *widget,
|
|
||||||
GtkDirectionType direction_type)
|
|
||||||
{
|
|
||||||
GtkTextView *text_view = GTK_TEXT_VIEW (widget);
|
|
||||||
|
|
||||||
if (GTK_TEXT_VIEW_GET_CLASS (text_view)->move_focus)
|
|
||||||
GTK_TEXT_VIEW_GET_CLASS (text_view)->move_focus (text_view,
|
|
||||||
direction_type);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Container
|
* Container
|
||||||
*/
|
*/
|
||||||
@ -6149,36 +6126,6 @@ gtk_text_view_get_accepts_tab (GtkTextView *text_view)
|
|||||||
return text_view->priv->accepts_tab;
|
return text_view->priv->accepts_tab;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
gtk_text_view_compat_move_focus (GtkTextView *text_view,
|
|
||||||
GtkDirectionType direction_type)
|
|
||||||
{
|
|
||||||
GSignalInvocationHint *hint = g_signal_get_invocation_hint (text_view);
|
|
||||||
|
|
||||||
/* as of GTK+ 2.12, the "move-focus" signal has been moved to GtkWidget,
|
|
||||||
* the evil code below makes sure that both emitting the signal and
|
|
||||||
* calling the virtual function directly continue to work as expetcted
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (hint->signal_id == g_signal_lookup ("move-focus", GTK_TYPE_WIDGET))
|
|
||||||
{
|
|
||||||
/* if this is a signal emission, chain up */
|
|
||||||
|
|
||||||
gboolean retval;
|
|
||||||
|
|
||||||
g_signal_chain_from_overridden_handler (text_view,
|
|
||||||
direction_type, &retval);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* otherwise emit the signal, since somebody called the virtual
|
|
||||||
* function directly
|
|
||||||
*/
|
|
||||||
|
|
||||||
g_signal_emit_by_name (text_view, "move-focus", direction_type);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Selections
|
* Selections
|
||||||
*/
|
*/
|
||||||
|
@ -106,13 +106,6 @@ struct _GtkTextViewClass
|
|||||||
/* overwrite */
|
/* overwrite */
|
||||||
void (* toggle_overwrite) (GtkTextView *text_view);
|
void (* toggle_overwrite) (GtkTextView *text_view);
|
||||||
|
|
||||||
/* as of GTK+ 2.12 the "move-focus" signal has been moved to GtkWidget,
|
|
||||||
* so this is merley a virtual function now. Overriding it in subclasses
|
|
||||||
* continues to work though.
|
|
||||||
*/
|
|
||||||
void (* move_focus) (GtkTextView *text_view,
|
|
||||||
GtkDirectionType direction);
|
|
||||||
|
|
||||||
/* Padding for future expansion */
|
/* Padding for future expansion */
|
||||||
void (*_gtk_reserved1) (void);
|
void (*_gtk_reserved1) (void);
|
||||||
void (*_gtk_reserved2) (void);
|
void (*_gtk_reserved2) (void);
|
||||||
|
@ -337,6 +337,7 @@ enum {
|
|||||||
GRAB_FOCUS,
|
GRAB_FOCUS,
|
||||||
FOCUS,
|
FOCUS,
|
||||||
MOVE_FOCUS,
|
MOVE_FOCUS,
|
||||||
|
KEYNAV_FAILED,
|
||||||
EVENT,
|
EVENT,
|
||||||
EVENT_AFTER,
|
EVENT_AFTER,
|
||||||
BUTTON_PRESS_EVENT,
|
BUTTON_PRESS_EVENT,
|
||||||
@ -363,6 +364,12 @@ enum {
|
|||||||
SELECTION_RECEIVED,
|
SELECTION_RECEIVED,
|
||||||
PROXIMITY_IN_EVENT,
|
PROXIMITY_IN_EVENT,
|
||||||
PROXIMITY_OUT_EVENT,
|
PROXIMITY_OUT_EVENT,
|
||||||
|
CLIENT_EVENT,
|
||||||
|
NO_EXPOSE_EVENT,
|
||||||
|
VISIBILITY_NOTIFY_EVENT,
|
||||||
|
WINDOW_STATE_EVENT,
|
||||||
|
DAMAGE_EVENT,
|
||||||
|
GRAB_BROKEN_EVENT,
|
||||||
DRAG_BEGIN,
|
DRAG_BEGIN,
|
||||||
DRAG_END,
|
DRAG_END,
|
||||||
DRAG_DATA_DELETE,
|
DRAG_DATA_DELETE,
|
||||||
@ -371,21 +378,14 @@ enum {
|
|||||||
DRAG_DROP,
|
DRAG_DROP,
|
||||||
DRAG_DATA_GET,
|
DRAG_DATA_GET,
|
||||||
DRAG_DATA_RECEIVED,
|
DRAG_DATA_RECEIVED,
|
||||||
CLIENT_EVENT,
|
|
||||||
NO_EXPOSE_EVENT,
|
|
||||||
VISIBILITY_NOTIFY_EVENT,
|
|
||||||
WINDOW_STATE_EVENT,
|
|
||||||
POPUP_MENU,
|
POPUP_MENU,
|
||||||
SHOW_HELP,
|
SHOW_HELP,
|
||||||
ACCEL_CLOSURES_CHANGED,
|
ACCEL_CLOSURES_CHANGED,
|
||||||
SCREEN_CHANGED,
|
SCREEN_CHANGED,
|
||||||
CAN_ACTIVATE_ACCEL,
|
CAN_ACTIVATE_ACCEL,
|
||||||
GRAB_BROKEN,
|
|
||||||
COMPOSITED_CHANGED,
|
COMPOSITED_CHANGED,
|
||||||
QUERY_TOOLTIP,
|
QUERY_TOOLTIP,
|
||||||
KEYNAV_FAILED,
|
|
||||||
DRAG_FAILED,
|
DRAG_FAILED,
|
||||||
DAMAGE_EVENT,
|
|
||||||
LAST_SIGNAL
|
LAST_SIGNAL
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -768,6 +768,8 @@ gtk_widget_class_init (GtkWidgetClass *klass)
|
|||||||
klass->mnemonic_activate = gtk_widget_real_mnemonic_activate;
|
klass->mnemonic_activate = gtk_widget_real_mnemonic_activate;
|
||||||
klass->grab_focus = gtk_widget_real_grab_focus;
|
klass->grab_focus = gtk_widget_real_grab_focus;
|
||||||
klass->focus = gtk_widget_real_focus;
|
klass->focus = gtk_widget_real_focus;
|
||||||
|
klass->move_focus = gtk_widget_real_move_focus;
|
||||||
|
klass->keynav_failed = gtk_widget_real_keynav_failed;
|
||||||
klass->event = NULL;
|
klass->event = NULL;
|
||||||
klass->button_press_event = NULL;
|
klass->button_press_event = NULL;
|
||||||
klass->button_release_event = NULL;
|
klass->button_release_event = NULL;
|
||||||
@ -1594,15 +1596,39 @@ gtk_widget_class_init (GtkWidgetClass *klass)
|
|||||||
* @direction:
|
* @direction:
|
||||||
*/
|
*/
|
||||||
widget_signals[MOVE_FOCUS] =
|
widget_signals[MOVE_FOCUS] =
|
||||||
g_signal_new_class_handler (I_("move-focus"),
|
g_signal_new (I_("move-focus"),
|
||||||
G_TYPE_FROM_CLASS (klass),
|
G_TYPE_FROM_CLASS (klass),
|
||||||
G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
|
G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
|
||||||
G_CALLBACK (gtk_widget_real_move_focus),
|
G_STRUCT_OFFSET (GtkWidgetClass, move_focus),
|
||||||
NULL, NULL,
|
NULL, NULL,
|
||||||
_gtk_marshal_VOID__ENUM,
|
_gtk_marshal_VOID__ENUM,
|
||||||
G_TYPE_NONE,
|
G_TYPE_NONE,
|
||||||
1,
|
1,
|
||||||
GTK_TYPE_DIRECTION_TYPE);
|
GTK_TYPE_DIRECTION_TYPE);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GtkWidget::keynav-failed:
|
||||||
|
* @widget: the object which received the signal
|
||||||
|
* @direction: the direction of movement
|
||||||
|
*
|
||||||
|
* Gets emitted if keyboard navigation fails.
|
||||||
|
* See gtk_widget_keynav_failed() for details.
|
||||||
|
*
|
||||||
|
* Returns: %TRUE if stopping keyboard navigation is fine, %FALSE
|
||||||
|
* if the emitting widget should try to handle the keyboard
|
||||||
|
* navigation attempt in its parent container(s).
|
||||||
|
*
|
||||||
|
* Since: 2.12
|
||||||
|
**/
|
||||||
|
widget_signals[KEYNAV_FAILED] =
|
||||||
|
g_signal_new (I_("keynav-failed"),
|
||||||
|
G_TYPE_FROM_CLASS (klass),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET (GtkWidgetClass, keynav_failed),
|
||||||
|
_gtk_boolean_handled_accumulator, NULL,
|
||||||
|
_gtk_marshal_BOOLEAN__ENUM,
|
||||||
|
G_TYPE_BOOLEAN, 1,
|
||||||
|
GTK_TYPE_DIRECTION_TYPE);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GtkWidget::event:
|
* GtkWidget::event:
|
||||||
@ -1777,30 +1803,6 @@ gtk_widget_class_init (GtkWidgetClass *klass)
|
|||||||
_gtk_marshal_VOID__VOID,
|
_gtk_marshal_VOID__VOID,
|
||||||
G_TYPE_NONE, 0);
|
G_TYPE_NONE, 0);
|
||||||
|
|
||||||
/**
|
|
||||||
* GtkWidget::keynav-failed:
|
|
||||||
* @widget: the object which received the signal
|
|
||||||
* @direction: the direction of movement
|
|
||||||
*
|
|
||||||
* Gets emitted if keyboard navigation fails.
|
|
||||||
* See gtk_widget_keynav_failed() for details.
|
|
||||||
*
|
|
||||||
* Returns: %TRUE if stopping keyboard navigation is fine, %FALSE
|
|
||||||
* if the emitting widget should try to handle the keyboard
|
|
||||||
* navigation attempt in its parent container(s).
|
|
||||||
*
|
|
||||||
* Since: 2.12
|
|
||||||
**/
|
|
||||||
widget_signals[KEYNAV_FAILED] =
|
|
||||||
g_signal_new_class_handler (I_("keynav-failed"),
|
|
||||||
G_TYPE_FROM_CLASS (klass),
|
|
||||||
G_SIGNAL_RUN_LAST,
|
|
||||||
G_CALLBACK (gtk_widget_real_keynav_failed),
|
|
||||||
_gtk_boolean_handled_accumulator, NULL,
|
|
||||||
_gtk_marshal_BOOLEAN__ENUM,
|
|
||||||
G_TYPE_BOOLEAN, 1,
|
|
||||||
GTK_TYPE_DIRECTION_TYPE);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GtkWidget::delete-event:
|
* GtkWidget::delete-event:
|
||||||
* @widget: the object which received the signal
|
* @widget: the object which received the signal
|
||||||
@ -2729,7 +2731,7 @@ gtk_widget_class_init (GtkWidgetClass *klass)
|
|||||||
g_signal_new (I_("damage-event"),
|
g_signal_new (I_("damage-event"),
|
||||||
G_TYPE_FROM_CLASS (klass),
|
G_TYPE_FROM_CLASS (klass),
|
||||||
G_SIGNAL_RUN_LAST,
|
G_SIGNAL_RUN_LAST,
|
||||||
0,
|
G_STRUCT_OFFSET (GtkWidgetClass, damage_event),
|
||||||
_gtk_boolean_handled_accumulator, NULL,
|
_gtk_boolean_handled_accumulator, NULL,
|
||||||
_gtk_marshal_BOOLEAN__BOXED,
|
_gtk_marshal_BOOLEAN__BOXED,
|
||||||
G_TYPE_BOOLEAN, 1,
|
G_TYPE_BOOLEAN, 1,
|
||||||
@ -2752,7 +2754,7 @@ gtk_widget_class_init (GtkWidgetClass *klass)
|
|||||||
*
|
*
|
||||||
* Since: 2.8
|
* Since: 2.8
|
||||||
*/
|
*/
|
||||||
widget_signals[GRAB_BROKEN] =
|
widget_signals[GRAB_BROKEN_EVENT] =
|
||||||
g_signal_new (I_("grab-broken-event"),
|
g_signal_new (I_("grab-broken-event"),
|
||||||
G_TYPE_FROM_CLASS (klass),
|
G_TYPE_FROM_CLASS (klass),
|
||||||
G_SIGNAL_RUN_LAST,
|
G_SIGNAL_RUN_LAST,
|
||||||
@ -5809,7 +5811,7 @@ gtk_widget_event_internal (GtkWidget *widget,
|
|||||||
signal_num = VISIBILITY_NOTIFY_EVENT;
|
signal_num = VISIBILITY_NOTIFY_EVENT;
|
||||||
break;
|
break;
|
||||||
case GDK_GRAB_BROKEN:
|
case GDK_GRAB_BROKEN:
|
||||||
signal_num = GRAB_BROKEN;
|
signal_num = GRAB_BROKEN_EVENT;
|
||||||
break;
|
break;
|
||||||
case GDK_DAMAGE:
|
case GDK_DAMAGE:
|
||||||
signal_num = DAMAGE_EVENT;
|
signal_num = DAMAGE_EVENT;
|
||||||
@ -6296,11 +6298,10 @@ gtk_widget_real_move_focus (GtkWidget *widget,
|
|||||||
{
|
{
|
||||||
GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
|
GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
|
||||||
|
|
||||||
if (GTK_IS_WINDOW (toplevel) &&
|
if (widget != toplevel && GTK_IS_WINDOW (toplevel))
|
||||||
GTK_WINDOW_GET_CLASS (toplevel)->move_focus)
|
|
||||||
{
|
{
|
||||||
GTK_WINDOW_GET_CLASS (toplevel)->move_focus (GTK_WINDOW (toplevel),
|
g_signal_emit (toplevel, widget_signals[MOVE_FOCUS], 0,
|
||||||
direction);
|
direction);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,7 +168,7 @@ struct _GtkWidgetClass
|
|||||||
GInitiallyUnownedClass parent_class;
|
GInitiallyUnownedClass parent_class;
|
||||||
|
|
||||||
/*< public >*/
|
/*< public >*/
|
||||||
|
|
||||||
guint activate_signal;
|
guint activate_signal;
|
||||||
|
|
||||||
guint set_scroll_adjustments_signal;
|
guint set_scroll_adjustments_signal;
|
||||||
@ -207,7 +207,7 @@ struct _GtkWidgetClass
|
|||||||
GParamSpec *pspec);
|
GParamSpec *pspec);
|
||||||
gboolean (* draw) (GtkWidget *widget,
|
gboolean (* draw) (GtkWidget *widget,
|
||||||
cairo_t *cr);
|
cairo_t *cr);
|
||||||
|
|
||||||
/* size requests */
|
/* size requests */
|
||||||
GtkSizeRequestMode (* get_request_mode) (GtkWidget *widget);
|
GtkSizeRequestMode (* get_request_mode) (GtkWidget *widget);
|
||||||
|
|
||||||
@ -227,14 +227,20 @@ struct _GtkWidgetClass
|
|||||||
gint *natural_height);
|
gint *natural_height);
|
||||||
|
|
||||||
/* Mnemonics */
|
/* Mnemonics */
|
||||||
gboolean (* mnemonic_activate) (GtkWidget *widget,
|
gboolean (* mnemonic_activate) (GtkWidget *widget,
|
||||||
gboolean group_cycling);
|
gboolean group_cycling);
|
||||||
|
|
||||||
/* explicit focus */
|
/* explicit focus */
|
||||||
void (* grab_focus) (GtkWidget *widget);
|
void (* grab_focus) (GtkWidget *widget);
|
||||||
gboolean (* focus) (GtkWidget *widget,
|
gboolean (* focus) (GtkWidget *widget,
|
||||||
GtkDirectionType direction);
|
GtkDirectionType direction);
|
||||||
|
|
||||||
|
/* keyboard navigation */
|
||||||
|
void (* move_focus) (GtkWidget *widget,
|
||||||
|
GtkDirectionType direction);
|
||||||
|
gboolean (* keynav_failed) (GtkWidget *widget,
|
||||||
|
GtkDirectionType direction);
|
||||||
|
|
||||||
/* events */
|
/* events */
|
||||||
gboolean (* event) (GtkWidget *widget,
|
gboolean (* event) (GtkWidget *widget,
|
||||||
GdkEvent *event);
|
GdkEvent *event);
|
||||||
@ -288,31 +294,35 @@ struct _GtkWidgetClass
|
|||||||
GdkEventAny *event);
|
GdkEventAny *event);
|
||||||
gboolean (* window_state_event) (GtkWidget *widget,
|
gboolean (* window_state_event) (GtkWidget *widget,
|
||||||
GdkEventWindowState *event);
|
GdkEventWindowState *event);
|
||||||
|
gboolean (* damage_event) (GtkWidget *widget,
|
||||||
|
GdkEventExpose *event);
|
||||||
|
gboolean (* grab_broken_event) (GtkWidget *widget,
|
||||||
|
GdkEventGrabBroken *event);
|
||||||
|
|
||||||
/* selection */
|
/* selection */
|
||||||
void (* selection_get) (GtkWidget *widget,
|
void (* selection_get) (GtkWidget *widget,
|
||||||
GtkSelectionData *selection_data,
|
GtkSelectionData *selection_data,
|
||||||
guint info,
|
guint info,
|
||||||
guint time_);
|
guint time_);
|
||||||
void (* selection_received) (GtkWidget *widget,
|
void (* selection_received) (GtkWidget *widget,
|
||||||
GtkSelectionData *selection_data,
|
GtkSelectionData *selection_data,
|
||||||
guint time_);
|
guint time_);
|
||||||
|
|
||||||
/* Source side drag signals */
|
/* Source side drag signals */
|
||||||
void (* drag_begin) (GtkWidget *widget,
|
void (* drag_begin) (GtkWidget *widget,
|
||||||
GdkDragContext *context);
|
GdkDragContext *context);
|
||||||
void (* drag_end) (GtkWidget *widget,
|
void (* drag_end) (GtkWidget *widget,
|
||||||
GdkDragContext *context);
|
GdkDragContext *context);
|
||||||
void (* drag_data_get) (GtkWidget *widget,
|
void (* drag_data_get) (GtkWidget *widget,
|
||||||
GdkDragContext *context,
|
GdkDragContext *context,
|
||||||
GtkSelectionData *selection_data,
|
GtkSelectionData *selection_data,
|
||||||
guint info,
|
guint info,
|
||||||
guint time_);
|
guint time_);
|
||||||
void (* drag_data_delete) (GtkWidget *widget,
|
void (* drag_data_delete) (GtkWidget *widget,
|
||||||
GdkDragContext *context);
|
GdkDragContext *context);
|
||||||
|
|
||||||
/* Target side drag signals */
|
/* Target side drag signals */
|
||||||
void (* drag_leave) (GtkWidget *widget,
|
void (* drag_leave) (GtkWidget *widget,
|
||||||
GdkDragContext *context,
|
GdkDragContext *context,
|
||||||
guint time_);
|
guint time_);
|
||||||
gboolean (* drag_motion) (GtkWidget *widget,
|
gboolean (* drag_motion) (GtkWidget *widget,
|
||||||
@ -325,7 +335,7 @@ struct _GtkWidgetClass
|
|||||||
gint x,
|
gint x,
|
||||||
gint y,
|
gint y,
|
||||||
guint time_);
|
guint time_);
|
||||||
void (* drag_data_received) (GtkWidget *widget,
|
void (* drag_data_received) (GtkWidget *widget,
|
||||||
GdkDragContext *context,
|
GdkDragContext *context,
|
||||||
gint x,
|
gint x,
|
||||||
gint y,
|
gint y,
|
||||||
@ -343,19 +353,16 @@ struct _GtkWidgetClass
|
|||||||
*/
|
*/
|
||||||
gboolean (* show_help) (GtkWidget *widget,
|
gboolean (* show_help) (GtkWidget *widget,
|
||||||
GtkWidgetHelpType help_type);
|
GtkWidgetHelpType help_type);
|
||||||
|
|
||||||
/* accessibility support
|
/* accessibility support
|
||||||
*/
|
*/
|
||||||
AtkObject* (*get_accessible) (GtkWidget *widget);
|
AtkObject * (* get_accessible) (GtkWidget *widget);
|
||||||
|
|
||||||
void (*screen_changed) (GtkWidget *widget,
|
void (* screen_changed) (GtkWidget *widget,
|
||||||
GdkScreen *previous_screen);
|
GdkScreen *previous_screen);
|
||||||
gboolean (*can_activate_accel) (GtkWidget *widget,
|
gboolean (* can_activate_accel) (GtkWidget *widget,
|
||||||
guint signal_id);
|
guint signal_id);
|
||||||
|
|
||||||
/* Sent when a grab is broken. */
|
|
||||||
gboolean (*grab_broken_event) (GtkWidget *widget,
|
|
||||||
GdkEventGrabBroken *event);
|
|
||||||
|
|
||||||
void (* composited_changed) (GtkWidget *widget);
|
void (* composited_changed) (GtkWidget *widget);
|
||||||
|
|
||||||
@ -365,7 +372,6 @@ struct _GtkWidgetClass
|
|||||||
gboolean keyboard_tooltip,
|
gboolean keyboard_tooltip,
|
||||||
GtkTooltip *tooltip);
|
GtkTooltip *tooltip);
|
||||||
|
|
||||||
/*< public >*/
|
|
||||||
void (* compute_expand) (GtkWidget *widget,
|
void (* compute_expand) (GtkWidget *widget,
|
||||||
gboolean *hexpand_p,
|
gboolean *hexpand_p,
|
||||||
gboolean *vexpand_p);
|
gboolean *vexpand_p);
|
||||||
@ -380,11 +386,6 @@ struct _GtkWidgetClass
|
|||||||
|
|
||||||
/*< private >*/
|
/*< private >*/
|
||||||
|
|
||||||
/* Signals without a C default handler class slot:
|
|
||||||
* gboolean (*damage_event) (GtkWidget *widget,
|
|
||||||
* GdkEventExpose *event);
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Padding for future expansion */
|
/* Padding for future expansion */
|
||||||
void (*_gtk_reserved1) (void);
|
void (*_gtk_reserved1) (void);
|
||||||
void (*_gtk_reserved2) (void);
|
void (*_gtk_reserved2) (void);
|
||||||
|
@ -354,6 +354,8 @@ static gboolean gtk_window_state_event (GtkWidget *widget,
|
|||||||
static void gtk_window_check_resize (GtkContainer *container);
|
static void gtk_window_check_resize (GtkContainer *container);
|
||||||
static gint gtk_window_focus (GtkWidget *widget,
|
static gint gtk_window_focus (GtkWidget *widget,
|
||||||
GtkDirectionType direction);
|
GtkDirectionType direction);
|
||||||
|
static void gtk_window_move_focus (GtkWidget *widget,
|
||||||
|
GtkDirectionType dir);
|
||||||
static void gtk_window_real_set_focus (GtkWindow *window,
|
static void gtk_window_real_set_focus (GtkWindow *window,
|
||||||
GtkWidget *focus);
|
GtkWidget *focus);
|
||||||
static void gtk_window_direction_changed (GtkWidget *widget,
|
static void gtk_window_direction_changed (GtkWidget *widget,
|
||||||
@ -363,8 +365,6 @@ static void gtk_window_state_changed (GtkWidget *widget,
|
|||||||
|
|
||||||
static void gtk_window_real_activate_default (GtkWindow *window);
|
static void gtk_window_real_activate_default (GtkWindow *window);
|
||||||
static void gtk_window_real_activate_focus (GtkWindow *window);
|
static void gtk_window_real_activate_focus (GtkWindow *window);
|
||||||
static void gtk_window_move_focus (GtkWindow *window,
|
|
||||||
GtkDirectionType dir);
|
|
||||||
static void gtk_window_keys_changed (GtkWindow *window);
|
static void gtk_window_keys_changed (GtkWindow *window);
|
||||||
static gint gtk_window_draw (GtkWidget *widget,
|
static gint gtk_window_draw (GtkWidget *widget,
|
||||||
cairo_t *cr);
|
cairo_t *cr);
|
||||||
@ -587,6 +587,7 @@ gtk_window_class_init (GtkWindowClass *klass)
|
|||||||
widget_class->focus_out_event = gtk_window_focus_out_event;
|
widget_class->focus_out_event = gtk_window_focus_out_event;
|
||||||
widget_class->client_event = gtk_window_client_event;
|
widget_class->client_event = gtk_window_client_event;
|
||||||
widget_class->focus = gtk_window_focus;
|
widget_class->focus = gtk_window_focus;
|
||||||
|
widget_class->move_focus = gtk_window_move_focus;
|
||||||
widget_class->draw = gtk_window_draw;
|
widget_class->draw = gtk_window_draw;
|
||||||
widget_class->get_preferred_width = gtk_window_get_preferred_width;
|
widget_class->get_preferred_width = gtk_window_get_preferred_width;
|
||||||
widget_class->get_preferred_height = gtk_window_get_preferred_height;
|
widget_class->get_preferred_height = gtk_window_get_preferred_height;
|
||||||
@ -602,7 +603,6 @@ gtk_window_class_init (GtkWindowClass *klass)
|
|||||||
|
|
||||||
klass->activate_default = gtk_window_real_activate_default;
|
klass->activate_default = gtk_window_real_activate_default;
|
||||||
klass->activate_focus = gtk_window_real_activate_focus;
|
klass->activate_focus = gtk_window_real_activate_focus;
|
||||||
klass->move_focus = gtk_window_move_focus;
|
|
||||||
klass->keys_changed = gtk_window_keys_changed;
|
klass->keys_changed = gtk_window_keys_changed;
|
||||||
|
|
||||||
g_type_class_add_private (gobject_class, sizeof (GtkWindowPrivate));
|
g_type_class_add_private (gobject_class, sizeof (GtkWindowPrivate));
|
||||||
@ -4690,7 +4690,7 @@ gtk_window_show (GtkWidget *widget)
|
|||||||
/* Try to make sure that we have some focused widget
|
/* Try to make sure that we have some focused widget
|
||||||
*/
|
*/
|
||||||
if (!priv->focus_widget && !GTK_IS_PLUG (window))
|
if (!priv->focus_widget && !GTK_IS_PLUG (window))
|
||||||
gtk_window_move_focus (window, GTK_DIR_TAB_FORWARD);
|
gtk_window_move_focus (widget, GTK_DIR_TAB_FORWARD);
|
||||||
|
|
||||||
if (priv->modal)
|
if (priv->modal)
|
||||||
gtk_grab_add (widget);
|
gtk_grab_add (widget);
|
||||||
@ -5883,16 +5883,6 @@ gtk_window_real_activate_focus (GtkWindow *window)
|
|||||||
gtk_window_activate_focus (window);
|
gtk_window_activate_focus (window);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
gtk_window_move_focus (GtkWindow *window,
|
|
||||||
GtkDirectionType dir)
|
|
||||||
{
|
|
||||||
gtk_widget_child_focus (GTK_WIDGET (window), dir);
|
|
||||||
|
|
||||||
if (!gtk_container_get_focus_child (GTK_CONTAINER (window)))
|
|
||||||
gtk_window_set_focus (window, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static gint
|
static gint
|
||||||
gtk_window_enter_notify_event (GtkWidget *widget,
|
gtk_window_enter_notify_event (GtkWidget *widget,
|
||||||
GdkEventCrossing *event)
|
GdkEventCrossing *event)
|
||||||
@ -6119,6 +6109,16 @@ gtk_window_focus (GtkWidget *widget,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_window_move_focus (GtkWidget *widget,
|
||||||
|
GtkDirectionType dir)
|
||||||
|
{
|
||||||
|
gtk_widget_child_focus (widget, dir);
|
||||||
|
|
||||||
|
if (! gtk_container_get_focus_child (GTK_CONTAINER (widget)))
|
||||||
|
gtk_window_set_focus (GTK_WINDOW (widget), NULL);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gtk_window_real_set_focus (GtkWindow *window,
|
gtk_window_real_set_focus (GtkWindow *window,
|
||||||
GtkWidget *focus)
|
GtkWidget *focus)
|
||||||
|
@ -75,15 +75,8 @@ struct _GtkWindowClass
|
|||||||
void (* activate_focus) (GtkWindow *window);
|
void (* activate_focus) (GtkWindow *window);
|
||||||
void (* activate_default) (GtkWindow *window);
|
void (* activate_default) (GtkWindow *window);
|
||||||
|
|
||||||
/* as of GTK+ 2.12 the "move-focus" signal has been moved to GtkWidget,
|
void (* keys_changed) (GtkWindow *window);
|
||||||
* so this is merley a virtual function now. Overriding it in subclasses
|
|
||||||
* continues to work though.
|
|
||||||
*/
|
|
||||||
void (* move_focus) (GtkWindow *window,
|
|
||||||
GtkDirectionType direction);
|
|
||||||
|
|
||||||
void (*keys_changed) (GtkWindow *window);
|
|
||||||
|
|
||||||
/* Padding for future expansion */
|
/* Padding for future expansion */
|
||||||
void (*_gtk_reserved1) (void);
|
void (*_gtk_reserved1) (void);
|
||||||
void (*_gtk_reserved2) (void);
|
void (*_gtk_reserved2) (void);
|
||||||
|
Loading…
Reference in New Issue
Block a user