pidgin/eggtrayicon.c

Fri, 13 Mar 2009 03:04:07 +0000

author
Paul Aurich <darkrain42@pidgin.im>
date
Fri, 13 Mar 2009 03:04:07 +0000
changeset 26396
7045f27f0a72
parent 25888
d0fdd378a635
child 27326
83f1f6b8986d
permissions
-rw-r--r--

Move 'Minutes before becoming idle' above 'Change status when idle'

Minutes before becoming idle has an effect even when we're not doing autoaway,
so it should not be disabled then.

3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
2 /* eggtrayicon.c
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
3 * Copyright (C) 2002 Anders Carlsson <andersca@gnu.org>
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
4 *
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
5 * This library is free software; you can redistribute it and/or
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
6 * modify it under the terms of the GNU Lesser General Public
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
7 * License as published by the Free Software Foundation; either
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
8 * version 2 of the License, or (at your option) any later version.
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
9 *
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
10 * This library is distributed in the hope that it will be useful,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
13 * Lesser General Public License for more details.
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
14 *
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
15 * You should have received a copy of the GNU Lesser General Public
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
16 * License along with this library; if not, write to the
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 18709
diff changeset
17 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 18709
diff changeset
18 * Boston, MA 02111-1301, USA.
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
19 */
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
20
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
21 #include <config.h>
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
22 #include <string.h>
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
23
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
24 #include "eggtrayicon.h"
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
25
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
26 #include <X11/Xatom.h>
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
27
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
28 #define _(x) x
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
29 #define N_(x) x
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
30
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
31 #define SYSTEM_TRAY_REQUEST_DOCK 0
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
32 #define SYSTEM_TRAY_BEGIN_MESSAGE 1
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
33 #define SYSTEM_TRAY_CANCEL_MESSAGE 2
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
34
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
35 #define SYSTEM_TRAY_ORIENTATION_HORZ 0
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
36 #define SYSTEM_TRAY_ORIENTATION_VERT 1
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
37
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
38 enum {
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
39 PROP_0,
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
40 PROP_ORIENTATION
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
41 };
25888
d0fdd378a635 Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 20796
diff changeset
42
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
43 static GtkPlugClass *parent_class = NULL;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
44
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
45 static void egg_tray_icon_init (EggTrayIcon *icon);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
46 static void egg_tray_icon_class_init (EggTrayIconClass *klass);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
47
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
48 static void egg_tray_icon_get_property (GObject *object,
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
49 guint prop_id,
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
50 GValue *value,
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
51 GParamSpec *pspec);
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
52
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
53 static void egg_tray_icon_realize (GtkWidget *widget);
4261
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
54 static void egg_tray_icon_unrealize (GtkWidget *widget);
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
55
14231
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
56 static void egg_tray_icon_add (GtkContainer *container,
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
57 GtkWidget *widget);
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
58
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
59 static void egg_tray_icon_update_manager_window (EggTrayIcon *icon,
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
60 gboolean dock_if_realized);
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
61 static void egg_tray_icon_manager_window_destroyed (EggTrayIcon *icon);
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
62
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
63 GType
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
64 egg_tray_icon_get_type (void)
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
65 {
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
66 static GType our_type = 0;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
67
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
68 if (our_type == 0)
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
69 {
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
70 our_type = g_type_from_name("EggTrayIcon");
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
71
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
72 if (our_type == 0)
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
73 {
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
74 static const GTypeInfo our_info =
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
75 {
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
76 sizeof (EggTrayIconClass),
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
77 (GBaseInitFunc) NULL,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
78 (GBaseFinalizeFunc) NULL,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
79 (GClassInitFunc) egg_tray_icon_class_init,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
80 NULL, /* class_finalize */
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
81 NULL, /* class_data */
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
82 sizeof (EggTrayIcon),
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
83 0, /* n_preallocs */
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 11291
diff changeset
84 (GInstanceInitFunc) egg_tray_icon_init,
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 11291
diff changeset
85 NULL /* value_table */
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
86 };
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
87
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
88 our_type = g_type_register_static (GTK_TYPE_PLUG, "EggTrayIcon", &our_info, 0);
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
89 }
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
90 else if (parent_class == NULL)
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
91 {
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
92 /* we're reheating the old class from a previous instance - engage ugly hack =( */
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
93 egg_tray_icon_class_init((EggTrayIconClass *)g_type_class_peek(our_type));
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
94 }
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
95 }
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
96
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
97 return our_type;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
98 }
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
99
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
100 static void
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
101 egg_tray_icon_init (EggTrayIcon *icon)
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
102 {
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
103 icon->stamp = 1;
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
104 icon->orientation = GTK_ORIENTATION_HORIZONTAL;
25888
d0fdd378a635 Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 20796
diff changeset
105
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
106 gtk_widget_add_events (GTK_WIDGET (icon), GDK_PROPERTY_CHANGE_MASK);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
107 }
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
108
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
109 static void
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
110 egg_tray_icon_class_init (EggTrayIconClass *klass)
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
111 {
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
112 GObjectClass *gobject_class = (GObjectClass *)klass;
4261
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
113 GtkWidgetClass *widget_class = (GtkWidgetClass *)klass;
14231
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
114 GtkContainerClass *container_class = (GtkContainerClass *)klass;
4261
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
115
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
116 parent_class = g_type_class_peek_parent (klass);
4261
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
117
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
118 gobject_class->get_property = egg_tray_icon_get_property;
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
119
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
120 widget_class->realize = egg_tray_icon_realize;
4261
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
121 widget_class->unrealize = egg_tray_icon_unrealize;
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
122
14231
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
123 container_class->add = egg_tray_icon_add;
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
124
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
125 g_object_class_install_property (gobject_class,
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
126 PROP_ORIENTATION,
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
127 g_param_spec_enum ("orientation",
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
128 _("Orientation"),
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
129 _("The orientation of the tray."),
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
130 GTK_TYPE_ORIENTATION,
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
131 GTK_ORIENTATION_HORIZONTAL,
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
132 G_PARAM_READABLE));
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
133 }
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
134
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
135 static void
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
136 egg_tray_icon_get_property (GObject *object,
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
137 guint prop_id,
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
138 GValue *value,
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
139 GParamSpec *pspec)
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
140 {
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
141 EggTrayIcon *icon = EGG_TRAY_ICON (object);
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
142
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
143 switch (prop_id)
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
144 {
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
145 case PROP_ORIENTATION:
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
146 g_value_set_enum (value, icon->orientation);
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
147 break;
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
148 default:
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
149 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
150 break;
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
151 }
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
152 }
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
153
18346
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
154 static Display *
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
155 egg_tray_icon_get_x_display(EggTrayIcon *icon)
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
156 {
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
157 Display *xdisplay = NULL;
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
158
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
159 #if GTK_CHECK_VERSION(2,1,0)
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
160 {
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
161 GdkDisplay *display = gtk_widget_get_display (GTK_WIDGET (icon));
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
162 if (!GDK_IS_DISPLAY (display))
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
163 display = gdk_display_get_default ();
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
164
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
165 xdisplay = GDK_DISPLAY_XDISPLAY (display);
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
166 }
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
167 #else
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
168 xdisplay = gdk_display;
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
169 #endif
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
170
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
171 return xdisplay;
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
172 }
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
173
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
174 static void
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
175 egg_tray_icon_get_orientation_property (EggTrayIcon *icon)
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
176 {
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
177 Display *xdisplay;
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
178 Atom type;
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
179 int format;
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
180 union {
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
181 gulong *prop;
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
182 guchar *prop_ch;
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
183 } prop = { NULL };
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
184 gulong nitems;
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
185 gulong bytes_after;
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
186 int error, result;
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
187
11291
5441d2419942 [gaim-migrate @ 13491]
Mark Doliner <markdoliner@pidgin.im>
parents: 10779
diff changeset
188 g_return_if_fail(icon->manager_window != None);
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
189
18346
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
190 xdisplay = egg_tray_icon_get_x_display(icon);
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
191
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
192 if (xdisplay == NULL)
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
193 return;
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
194
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
195 gdk_error_trap_push ();
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
196 type = None;
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
197 result = XGetWindowProperty (xdisplay,
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
198 icon->manager_window,
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
199 icon->orientation_atom,
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
200 0, G_MAXLONG, FALSE,
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
201 XA_CARDINAL,
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
202 &type, &format, &nitems,
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
203 &bytes_after, &(prop.prop_ch));
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
204 error = gdk_error_trap_pop ();
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
205
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
206 if (error || result != Success)
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
207 return;
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
208
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
209 if (type == XA_CARDINAL)
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
210 {
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
211 GtkOrientation orientation;
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
212
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
213 orientation = (prop.prop [0] == SYSTEM_TRAY_ORIENTATION_HORZ) ?
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
214 GTK_ORIENTATION_HORIZONTAL :
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
215 GTK_ORIENTATION_VERTICAL;
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
216
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
217 if (icon->orientation != orientation)
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
218 {
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
219 icon->orientation = orientation;
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
220
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
221 g_object_notify (G_OBJECT (icon), "orientation");
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
222 }
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
223 }
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
224
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
225 if (prop.prop)
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
226 XFree (prop.prop);
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
227 }
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
228
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
229 static GdkFilterReturn
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
230 egg_tray_icon_manager_filter (GdkXEvent *xevent, GdkEvent *event, gpointer user_data)
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
231 {
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
232 EggTrayIcon *icon = user_data;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
233 XEvent *xev = (XEvent *)xevent;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
234
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
235 if (xev->xany.type == ClientMessage &&
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
236 xev->xclient.message_type == icon->manager_atom &&
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
237 xev->xclient.data.l[1] == icon->selection_atom)
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
238 {
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
239 egg_tray_icon_update_manager_window (icon, TRUE);
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
240 }
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
241 else if (xev->xany.window == icon->manager_window)
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
242 {
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
243 if (xev->xany.type == PropertyNotify &&
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
244 xev->xproperty.atom == icon->orientation_atom)
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
245 {
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
246 egg_tray_icon_get_orientation_property (icon);
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
247 }
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
248 if (xev->xany.type == DestroyNotify)
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
249 {
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
250 egg_tray_icon_manager_window_destroyed (icon);
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
251 }
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
252 }
25888
d0fdd378a635 Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 20796
diff changeset
253
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
254 return GDK_FILTER_CONTINUE;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
255 }
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
256
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
257 static void
4261
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
258 egg_tray_icon_unrealize (GtkWidget *widget)
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
259 {
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
260 EggTrayIcon *icon = EGG_TRAY_ICON (widget);
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
261 GdkWindow *root_window;
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
262
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
263 if (icon->manager_window != None)
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
264 {
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
265 GdkWindow *gdkwin;
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
266
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
267 #if GTK_CHECK_VERSION(2,1,0)
4261
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
268 gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (widget),
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
269 icon->manager_window);
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
270 #else
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
271 gdkwin = gdk_window_lookup (icon->manager_window);
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
272 #endif
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
273
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
274 gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon);
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
275 }
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
276
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
277 #if GTK_CHECK_VERSION(2,1,0)
4261
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
278 root_window = gdk_screen_get_root_window (gtk_widget_get_screen (widget));
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
279 #else
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
280 root_window = gdk_window_lookup (gdk_x11_get_default_root_xwindow ());
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
281 #endif
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
282
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
283 gdk_window_remove_filter (root_window, egg_tray_icon_manager_filter, icon);
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
284
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
285 if (GTK_WIDGET_CLASS (parent_class)->unrealize)
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
286 (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
287 }
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
288
cc35d7c0582f <Robot101> commit message:
Robert McQueen <robot101@debian.org>
parents: 3510
diff changeset
289 static void
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
290 egg_tray_icon_send_manager_message (EggTrayIcon *icon,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
291 long message,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
292 Window window,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
293 long data1,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
294 long data2,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
295 long data3)
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
296 {
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
297 XClientMessageEvent ev;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
298 Display *display;
25888
d0fdd378a635 Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 20796
diff changeset
299
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
300 ev.type = ClientMessage;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
301 ev.window = window;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
302 ev.message_type = icon->system_tray_opcode_atom;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
303 ev.format = 32;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
304 ev.data.l[0] = gdk_x11_get_server_time (GTK_WIDGET (icon)->window);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
305 ev.data.l[1] = message;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
306 ev.data.l[2] = data1;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
307 ev.data.l[3] = data2;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
308 ev.data.l[4] = data3;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
309
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
310 #if GTK_CHECK_VERSION(2,1,0)
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
311 display = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon)));
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
312 #else
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
313 display = gdk_display;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
314 #endif
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
315
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
316 gdk_error_trap_push ();
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
317 XSendEvent (display,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
318 icon->manager_window, False, NoEventMask, (XEvent *)&ev);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
319 XSync (display, False);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
320 gdk_error_trap_pop ();
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
321 }
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
322
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
323 static void
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
324 egg_tray_icon_send_dock_request (EggTrayIcon *icon)
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
325 {
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
326 egg_tray_icon_send_manager_message (icon,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
327 SYSTEM_TRAY_REQUEST_DOCK,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
328 icon->manager_window,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
329 gtk_plug_get_id (GTK_PLUG (icon)),
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
330 0, 0);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
331 }
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
332
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
333 static void
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
334 egg_tray_icon_update_manager_window (EggTrayIcon *icon,
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
335 gboolean dock_if_realized)
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
336 {
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
337 Display *xdisplay;
25888
d0fdd378a635 Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 20796
diff changeset
338
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
339 if (icon->manager_window != None)
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
340 return;
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
341
18346
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
342 xdisplay = egg_tray_icon_get_x_display(icon);
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
343
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
344 if (xdisplay == NULL)
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
345 return;
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
346
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
347 XGrabServer (xdisplay);
25888
d0fdd378a635 Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 20796
diff changeset
348
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
349 icon->manager_window = XGetSelectionOwner (xdisplay,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
350 icon->selection_atom);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
351
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
352 if (icon->manager_window != None)
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
353 XSelectInput (xdisplay,
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
354 icon->manager_window, StructureNotifyMask|PropertyChangeMask);
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
355
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
356 XUngrabServer (xdisplay);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
357 XFlush (xdisplay);
25888
d0fdd378a635 Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 20796
diff changeset
358
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
359 if (icon->manager_window != None)
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
360 {
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
361 GdkWindow *gdkwin;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
362
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
363 #if GTK_CHECK_VERSION(2,1,0)
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
364 gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
365 icon->manager_window);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
366 #else
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
367 gdkwin = gdk_window_lookup (icon->manager_window);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
368 #endif
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
369
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
370 gdk_window_add_filter (gdkwin, egg_tray_icon_manager_filter, icon);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
371
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
372 if (dock_if_realized && GTK_WIDGET_REALIZED (icon))
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
373 egg_tray_icon_send_dock_request (icon);
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
374
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
375 egg_tray_icon_get_orientation_property (icon);
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
376 }
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
377 }
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
378
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
379 static void
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
380 egg_tray_icon_manager_window_destroyed (EggTrayIcon *icon)
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
381 {
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
382 GdkWindow *gdkwin;
25888
d0fdd378a635 Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 20796
diff changeset
383
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
384 g_return_if_fail (icon->manager_window != None);
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
385
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
386 #if GTK_CHECK_VERSION(2,1,0)
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
387 gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
388 icon->manager_window);
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
389 #else
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
390 gdkwin = gdk_window_lookup (icon->manager_window);
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
391 #endif
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
392
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
393 gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon);
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
394
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
395 icon->manager_window = None;
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
396
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
397 egg_tray_icon_update_manager_window (icon, TRUE);
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
398 }
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
399
14231
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
400 static gboolean
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
401 transparent_expose_event (GtkWidget *widget, GdkEventExpose *event, gpointer user_data)
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
402 {
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
403 gdk_window_clear_area (widget->window, event->area.x, event->area.y,
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
404 event->area.width, event->area.height);
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
405 return FALSE;
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
406 }
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
407
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
408 static void
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
409 make_transparent_again (GtkWidget *widget, GtkStyle *previous_style,
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
410 gpointer user_data)
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
411 {
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
412 gdk_window_set_back_pixmap(widget->window, NULL, TRUE);
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
413 }
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
414
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
415 static void
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
416 make_transparent (GtkWidget *widget, gpointer user_data)
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
417 {
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
418 if (GTK_WIDGET_NO_WINDOW (widget) || GTK_WIDGET_APP_PAINTABLE (widget))
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
419 return;
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
420
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
421 gtk_widget_set_app_paintable (widget, TRUE);
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
422 gtk_widget_set_double_buffered (widget, FALSE);
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
423 gdk_window_set_back_pixmap (widget->window, NULL, TRUE);
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
424 g_signal_connect (widget, "expose_event",
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
425 G_CALLBACK (transparent_expose_event), NULL);
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
426 g_signal_connect_after (widget, "style_set",
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
427 G_CALLBACK (make_transparent_again), NULL);
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
428 }
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
429
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
430 static void
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
431 egg_tray_icon_realize (GtkWidget *widget)
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
432 {
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
433 EggTrayIcon *icon = EGG_TRAY_ICON (widget);
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
434 gint screen;
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
435 Display *xdisplay;
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
436 char buffer[256];
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
437 GdkWindow *root_window;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
438
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
439 if (GTK_WIDGET_CLASS (parent_class)->realize)
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
440 GTK_WIDGET_CLASS (parent_class)->realize (widget);
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
441
14231
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
442 make_transparent (widget, NULL);
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
443
18346
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
444 xdisplay = egg_tray_icon_get_x_display(icon);
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
445
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
446 if (xdisplay == NULL)
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
447 return;
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
448
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
449 #if GTK_CHECK_VERSION(2,1,0)
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
450 screen = gdk_screen_get_number (gtk_widget_get_screen (widget));
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
451 #else
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
452 screen = XScreenNumberOfScreen (DefaultScreenOfDisplay (gdk_display));
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
453 #endif
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
454
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
455 /* Now see if there's a manager window around */
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
456 g_snprintf (buffer, sizeof (buffer),
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
457 "_NET_SYSTEM_TRAY_S%d",
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
458 screen);
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
459
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
460 icon->selection_atom = XInternAtom (xdisplay, buffer, False);
25888
d0fdd378a635 Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 20796
diff changeset
461
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
462 icon->manager_atom = XInternAtom (xdisplay, "MANAGER", False);
25888
d0fdd378a635 Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 20796
diff changeset
463
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
464 icon->system_tray_opcode_atom = XInternAtom (xdisplay,
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
465 "_NET_SYSTEM_TRAY_OPCODE",
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
466 False);
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
467
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
468 icon->orientation_atom = XInternAtom (xdisplay,
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
469 "_NET_SYSTEM_TRAY_ORIENTATION",
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
470 False);
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
471
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
472 egg_tray_icon_update_manager_window (icon, FALSE);
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
473 egg_tray_icon_send_dock_request (icon);
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
474
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
475 #if GTK_CHECK_VERSION(2,1,0)
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
476 root_window = gdk_screen_get_root_window (gtk_widget_get_screen (widget));
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
477 #else
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
478 root_window = gdk_window_lookup (gdk_x11_get_default_root_xwindow ());
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
479 #endif
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
480
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
481 /* Add a root window filter so that we get changes on MANAGER */
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
482 gdk_window_add_filter (root_window,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
483 egg_tray_icon_manager_filter, icon);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
484 }
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
485
14231
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
486 static void
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
487 egg_tray_icon_add (GtkContainer *container, GtkWidget *widget)
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
488 {
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
489 g_signal_connect (widget, "realize",
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
490 G_CALLBACK (make_transparent), NULL);
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
491 GTK_CONTAINER_CLASS (parent_class)->add (container, widget);
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
492 }
bdae40bccd7f [gaim-migrate @ 16819]
Dan Winship
parents: 12600
diff changeset
493
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
494 #if GTK_CHECK_VERSION(2,1,0)
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
495 EggTrayIcon *
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
496 egg_tray_icon_new_for_screen (GdkScreen *screen, const char *name)
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
497 {
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
498 g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
499
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
500 return g_object_new (EGG_TYPE_TRAY_ICON, "screen", screen, "title", name, NULL);
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
501 }
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
502 #endif
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
503
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
504 EggTrayIcon*
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
505 egg_tray_icon_new (const gchar *name)
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
506 {
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
507 return g_object_new (EGG_TYPE_TRAY_ICON, "title", name, NULL);
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
508 }
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
509
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
510 guint
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
511 egg_tray_icon_send_message (EggTrayIcon *icon,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
512 gint timeout,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
513 const gchar *message,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
514 gint len)
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
515 {
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
516 guint stamp;
25888
d0fdd378a635 Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 20796
diff changeset
517
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
518 g_return_val_if_fail (EGG_IS_TRAY_ICON (icon), 0);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
519 g_return_val_if_fail (timeout >= 0, 0);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
520 g_return_val_if_fail (message != NULL, 0);
25888
d0fdd378a635 Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 20796
diff changeset
521
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
522 if (icon->manager_window == None)
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
523 return 0;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
524
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
525 if (len < 0)
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
526 len = strlen (message);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
527
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
528 stamp = icon->stamp++;
25888
d0fdd378a635 Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 20796
diff changeset
529
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
530 /* Get ready to send the message */
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
531 egg_tray_icon_send_manager_message (icon, SYSTEM_TRAY_BEGIN_MESSAGE,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
532 (Window)gtk_plug_get_id (GTK_PLUG (icon)),
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
533 timeout, len, stamp);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
534
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
535 /* Now to send the actual message */
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
536 gdk_error_trap_push ();
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
537 while (len > 0)
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
538 {
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
539 XClientMessageEvent ev;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
540 Display *xdisplay;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
541
18346
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
542 xdisplay = egg_tray_icon_get_x_display(icon);
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
543
8a6dfdd516d4 Guard against passing NULL to GDK_DISPLAY_XDISPLAY. This resolves a crash
Casey Harkins <charkins@pidgin.im>
parents: 15435
diff changeset
544 if (xdisplay == NULL)
18709
e93e7776283e Return 0 to silence the following warning
Mark Doliner <markdoliner@pidgin.im>
parents: 18346
diff changeset
545 return 0;
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
546
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
547 ev.type = ClientMessage;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
548 ev.window = (Window)gtk_plug_get_id (GTK_PLUG (icon));
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
549 ev.format = 8;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
550 ev.message_type = XInternAtom (xdisplay,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
551 "_NET_SYSTEM_TRAY_MESSAGE_DATA", False);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
552 if (len > 20)
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
553 {
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
554 memcpy (&ev.data, message, 20);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
555 len -= 20;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
556 message += 20;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
557 }
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
558 else
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
559 {
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
560 memcpy (&ev.data, message, len);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
561 len = 0;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
562 }
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
563
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
564 XSendEvent (xdisplay,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
565 icon->manager_window, False, StructureNotifyMask, (XEvent *)&ev);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
566 XSync (xdisplay, False);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
567 }
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
568 gdk_error_trap_pop ();
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
569
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
570 return stamp;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
571 }
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
572
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
573 void
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
574 egg_tray_icon_cancel_message (EggTrayIcon *icon,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
575 guint id)
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
576 {
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
577 g_return_if_fail (EGG_IS_TRAY_ICON (icon));
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
578 g_return_if_fail (id > 0);
25888
d0fdd378a635 Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 20796
diff changeset
579
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
580 egg_tray_icon_send_manager_message (icon, SYSTEM_TRAY_CANCEL_MESSAGE,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
581 (Window)gtk_plug_get_id (GTK_PLUG (icon)),
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
582 id, 0, 0);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
583 }
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
584
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
585 GtkOrientation
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
586 egg_tray_icon_get_orientation (EggTrayIcon *icon)
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
587 {
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
588 g_return_val_if_fail (EGG_IS_TRAY_ICON (icon), GTK_ORIENTATION_HORIZONTAL);
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
589
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
590 return icon->orientation;
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 8735
diff changeset
591 }

mercurial