gtk+ r19529 - branches/gtk-2-12/gtk
- From: matthiasc svn gnome org
- To: svn-commits-list gnome org
- Subject: gtk+ r19529 - branches/gtk-2-12/gtk
- Date: Tue, 12 Feb 2008 15:57:09 +0000 (GMT)
Author: matthiasc
Date: Tue Feb 12 15:57:09 2008
New Revision: 19529
URL: http://svn.gnome.org/viewvc/gtk+?rev=19529&view=rev
Log:
Forgotten commit
Modified:
branches/gtk-2-12/gtk/gtkstatusicon.c
branches/gtk-2-12/gtk/gtktrayicon-x11.c
Modified: branches/gtk-2-12/gtk/gtkstatusicon.c
==============================================================================
--- branches/gtk-2-12/gtk/gtkstatusicon.c (original)
+++ branches/gtk-2-12/gtk/gtkstatusicon.c Tue Feb 12 15:57:09 2008
@@ -53,6 +53,8 @@
#include "gtklabel.h"
#endif
+#include "gdkkeysyms.h"
+
#include "gtkalias.h"
#define BLINK_TIMEOUT 500
@@ -150,6 +152,9 @@
static void gtk_status_icon_orientation_changed (GtkStatusIcon *status_icon);
#endif
+static gboolean gtk_status_icon_key_press (GtkStatusIcon *status_icon,
+ GdkEventKey *event);
+static void gtk_status_icon_popup_menu (GtkStatusIcon *status_icon);
static gboolean gtk_status_icon_button_press (GtkStatusIcon *status_icon,
GdkEventButton *event);
static void gtk_status_icon_disable_blinking (GtkStatusIcon *status_icon);
@@ -488,6 +493,10 @@
gtk_widget_add_events (GTK_WIDGET (priv->tray_icon),
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK);
+ g_signal_connect_swapped (priv->tray_icon, "key-press-event",
+ G_CALLBACK (gtk_status_icon_key_press), status_icon);
+ g_signal_connect_swapped (priv->tray_icon, "popup-menu",
+ G_CALLBACK (gtk_status_icon_popup_menu), status_icon);
g_signal_connect_swapped (priv->tray_icon, "notify::embedded",
G_CALLBACK (gtk_status_icon_embedded_changed), status_icon);
g_signal_connect_swapped (priv->tray_icon, "notify::orientation",
@@ -497,6 +506,7 @@
g_signal_connect_swapped (priv->tray_icon, "screen-changed",
G_CALLBACK (gtk_status_icon_screen_changed), status_icon);
priv->image = gtk_image_new ();
+ GTK_WIDGET_SET_FLAGS (priv->image, GTK_CAN_FOCUS);
gtk_container_add (GTK_CONTAINER (priv->tray_icon), priv->image);
gtk_widget_show (priv->image);
@@ -1201,6 +1211,34 @@
#endif
static gboolean
+gtk_status_icon_key_press (GtkStatusIcon *status_icon,
+ GdkEventKey *event)
+{
+ guint state, keyval;
+
+ state = event->state & gtk_accelerator_get_default_mod_mask ();
+ keyval = event->keyval;
+ if (state == 0 &&
+ (keyval == GDK_Return ||
+ keyval == GDK_KP_Enter ||
+ keyval == GDK_ISO_Enter ||
+ keyval == GDK_space ||
+ keyval == GDK_KP_Space))
+ {
+ emit_activate_signal (status_icon);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static void
+gtk_status_icon_popup_menu (GtkStatusIcon *status_icon)
+{
+ emit_popup_menu_signal (status_icon, 0, gtk_get_current_event_time ());
+}
+
+static gboolean
gtk_status_icon_button_press (GtkStatusIcon *status_icon,
GdkEventButton *event)
{
Modified: branches/gtk-2-12/gtk/gtktrayicon-x11.c
==============================================================================
--- branches/gtk-2-12/gtk/gtktrayicon-x11.c (original)
+++ branches/gtk-2-12/gtk/gtktrayicon-x11.c Tue Feb 12 15:57:09 2008
@@ -139,13 +139,29 @@
gtk_tray_icon_expose (GtkWidget *widget,
GdkEventExpose *event)
{
+ GtkWidget *focus_child;
+ gint border_width, x, y, width, height;
+ gboolean retval = FALSE;
+
gdk_window_clear_area (widget->window, event->area.x, event->area.y,
event->area.width, event->area.height);
- if (GTK_WIDGET_CLASS (gtk_tray_icon_parent_class)->expose_event)
- return GTK_WIDGET_CLASS (gtk_tray_icon_parent_class)->expose_event (widget, event);
+ if (GTK_WIDGET_CLASS (gtk_tray_icon_parent_class)->expose_event)
+ retval = GTK_WIDGET_CLASS (gtk_tray_icon_parent_class)->expose_event (widget, event);
+
+ focus_child = GTK_CONTAINER (widget)->focus_child;
+ if (focus_child && GTK_WIDGET_HAS_FOCUS (focus_child))
+ {
+ width = widget->allocation.width;
+ height = widget->allocation.height;
+
+ gtk_paint_focus (widget->style, widget->window,
+ GTK_WIDGET_STATE (widget),
+ &event->area, widget, "tray_icon",
+ x, y, width, height);
+ }
- return FALSE;
+ return retval;
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]