Magellan Linux

Contents of /trunk/metacity/patches/metacity-2-logout.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 153 - (show annotations) (download)
Tue May 8 20:52:56 2007 UTC (17 years ago) by niro
File size: 7363 byte(s)
-import

1 diff -ur metacity-2.8.6/src/keybindings.c metacity-2.8.6-patched/src/keybindings.c
2 --- metacity-2.8.6/src/keybindings.c 2004-10-11 23:42:37.000000000 +0800
3 +++ metacity-2.8.6-patched/src/keybindings.c 2004-12-08 11:50:25.631274776 +0800
4 @@ -30,6 +30,7 @@
5 #include "place.h"
6 #include "prefs.h"
7 #include "effects.h"
8 +#include "session.h"
9
10 #include <X11/keysym.h>
11 #include <string.h>
12 @@ -84,6 +85,11 @@
13 MetaWindow *window,
14 XEvent *event,
15 MetaKeyBinding *binding);
16 +static void handle_logout (MetaDisplay *display,
17 + MetaScreen *screen,
18 + MetaWindow *window,
19 + XEvent *event,
20 + MetaKeyBinding *binding);
21 static void handle_panel_keybinding (MetaDisplay *display,
22 MetaScreen *screen,
23 MetaWindow *window,
24 @@ -285,6 +291,8 @@
25 GINT_TO_POINTER (META_TAB_LIST_DOCKS) },
26 { META_KEYBINDING_SHOW_DESKTOP, handle_toggle_desktop,
27 NULL },
28 + { META_KEYBINDING_LOGOUT, handle_logout,
29 + NULL },
30 { META_KEYBINDING_PANEL_MAIN_MENU, handle_panel_keybinding,
31 GINT_TO_POINTER (META_KEYBINDING_ACTION_PANEL_MAIN_MENU) },
32 { META_KEYBINDING_PANEL_RUN_DIALOG, handle_panel_keybinding,
33 @@ -2785,6 +2793,16 @@
34 }
35
36 static void
37 +handle_logout (MetaDisplay *display,
38 + MetaScreen *screen,
39 + MetaWindow *window,
40 + XEvent *event,
41 + MetaKeyBinding *binding)
42 +{
43 + meta_session_request_logout ();
44 +}
45 +
46 +static void
47 handle_panel_keybinding (MetaDisplay *display,
48 MetaScreen *screen,
49 MetaWindow *window,
50 diff -ur metacity-2.8.6/src/metacity.schemas metacity-2.8.6-patched/src/metacity.schemas
51 --- metacity-2.8.6/src/metacity.schemas 2004-10-04 01:25:40.000000000 +0800
52 +++ metacity-2.8.6-patched/src/metacity.schemas 2004-12-08 11:50:25.652271584 +0800
53 @@ -22578,6 +22578,29 @@
54 </locale>
55 </schema>
56
57 + <schema>
58 + <key>/schemas/apps/metacity/global_keybindings/logout</key>
59 + <applyto>/apps/metacity/global_keybindings/logout</applyto>
60 + <owner>metacity</owner>
61 + <type>string</type>
62 + <default>&lt;Control&gt;&lt;Alt&gt;Delete</default>
63 + <locale name="C">
64 + <short>Log out</short>
65 + <long>
66 + The keybinding that logs you out from the session.
67 +
68 + The format looks like "&lt;Control&gt;&lt;Alt&gt;Delete" or
69 + "&lt;Shift&gt;&lt;Alt&gt;F1.
70 +
71 + The parser is fairly liberal and allows lower or upper case,
72 + and also abbreviations such as "&lt;Ctl&gt;" and
73 + "&lt;Ctrl&gt;". If you set the option to the special string
74 + "disabled", then there will be no keybinding for this
75 + action.
76 + </long>
77 + </locale>
78 + </schema>
79 +
80 <schema>
81 <key>/schemas/apps/metacity/global_keybindings/panel_main_menu</key>
82 <applyto>/apps/metacity/global_keybindings/panel_main_menu</applyto>
83 diff -ur metacity-2.8.6/src/metacity.schemas.in metacity-2.8.6-patched/src/metacity.schemas.in
84 --- metacity-2.8.6/src/metacity.schemas.in 2004-07-25 00:28:14.000000000 +0800
85 +++ metacity-2.8.6-patched/src/metacity.schemas.in 2004-12-08 11:50:25.654271280 +0800
86 @@ -1641,6 +1641,29 @@
87 </locale>
88 </schema>
89
90 + <schema>
91 + <key>/schemas/apps/metacity/global_keybindings/logout</key>
92 + <applyto>/apps/metacity/global_keybindings/logout</applyto>
93 + <owner>metacity</owner>
94 + <type>string</type>
95 + <default>&lt;Control&gt;&lt;Alt&gt;Delete</default>
96 + <locale name="C">
97 + <short>Log out</short>
98 + <long>
99 + The keybinding that logs you out from the session.
100 +
101 + The format looks like "&lt;Control&gt;&lt;Alt&gt;Delete" or
102 + "&lt;Shift&gt;&lt;Alt&gt;F1.
103 +
104 + The parser is fairly liberal and allows lower or upper case,
105 + and also abbreviations such as "&lt;Ctl&gt;" and
106 + "&lt;Ctrl&gt;". If you set the option to the special string
107 + "disabled", then there will be no keybinding for this
108 + action.
109 + </long>
110 + </locale>
111 + </schema>
112 +
113 <schema>
114 <key>/schemas/apps/metacity/global_keybindings/panel_main_menu</key>
115 <applyto>/apps/metacity/global_keybindings/panel_main_menu</applyto>
116 diff -ur metacity-2.8.6/src/prefs.c metacity-2.8.6-patched/src/prefs.c
117 --- metacity-2.8.6/src/prefs.c 2004-09-18 23:54:31.000000000 +0800
118 +++ metacity-2.8.6-patched/src/prefs.c 2004-12-08 11:50:25.655271128 +0800
119 @@ -1421,6 +1421,7 @@
120 { META_KEYBINDING_CYCLE_PANELS, 0, 0, TRUE },
121 { META_KEYBINDING_CYCLE_PANELS_BACKWARD, 0, 0, TRUE },
122 { META_KEYBINDING_SHOW_DESKTOP, 0, 0, FALSE },
123 + { META_KEYBINDING_LOGOUT, 0, 0, FALSE },
124 { META_KEYBINDING_PANEL_MAIN_MENU, 0, 0, FALSE },
125 { META_KEYBINDING_PANEL_RUN_DIALOG, 0, 0, FALSE },
126 { META_KEYBINDING_COMMAND_1, 0, 0, FALSE },
127 diff -ur metacity-2.8.6/src/prefs.h metacity-2.8.6-patched/src/prefs.h
128 --- metacity-2.8.6/src/prefs.h 2004-02-20 02:36:14.000000000 +0800
129 +++ metacity-2.8.6-patched/src/prefs.h 2004-12-08 11:52:59.051951288 +0800
130 @@ -111,6 +111,7 @@
131 #define META_KEYBINDING_CYCLE_PANELS "cycle_panels"
132 #define META_KEYBINDING_CYCLE_PANELS_BACKWARD "cycle_panels_backward"
133 #define META_KEYBINDING_SHOW_DESKTOP "show_desktop"
134 +#define META_KEYBINDING_LOGOUT "logout"
135 #define META_KEYBINDING_PANEL_MAIN_MENU "panel_main_menu"
136 #define META_KEYBINDING_PANEL_RUN_DIALOG "panel_run_dialog"
137 #define META_KEYBINDING_COMMAND_1 "run_command_1"
138 @@ -211,6 +212,7 @@
139 META_KEYBINDING_ACTION_CYCLE_PANELS,
140 META_KEYBINDING_ACTION_CYCLE_PANELS_BACKWARD,
141 META_KEYBINDING_ACTION_SHOW_DESKTOP,
142 + META_KEYBINDING_ACTION_LOGOUT,
143 META_KEYBINDING_ACTION_PANEL_MAIN_MENU,
144 META_KEYBINDING_ACTION_PANEL_RUN_DIALOG,
145 META_KEYBINDING_ACTION_COMMAND_1,
146 diff -ur metacity-2.8.6/src/session.c metacity-2.8.6-patched/src/session.c
147 --- metacity-2.8.6/src/session.c 2004-08-30 14:14:25.000000000 +0800
148 +++ metacity-2.8.6-patched/src/session.c 2004-12-08 11:50:25.656270976 +0800
149 @@ -357,6 +357,24 @@
150 g_free (saved_client_id);
151 }
152
153 +/**
154 + * meta_session_request_logout:
155 + *
156 + * Requests that a save_yourself be sent to the session manager so that we log
157 + * out.
158 + **/
159 +void
160 +meta_session_request_logout (void)
161 +{
162 + if (!session_connection)
163 + {
164 + meta_warning (_("Cannot log out because we could not connect to the session manager\n"));
165 + return;
166 + }
167 +
168 + SmcRequestSaveYourself (session_connection, SmSaveGlobal, TRUE, SmInteractStyleAny, FALSE, TRUE);
169 +}
170 +
171 void
172 meta_session_shutdown (void)
173 {
174 diff -ur metacity-2.8.6/src/session.h metacity-2.8.6-patched/src/session.h
175 --- metacity-2.8.6/src/session.h 2002-09-04 10:44:52.000000000 +0800
176 +++ metacity-2.8.6-patched/src/session.h 2004-12-08 11:50:25.657270824 +0800
177 @@ -72,7 +72,7 @@
178 void meta_session_init (const char *client_id,
179 const char *save_file);
180
181 -
182 +void meta_session_request_logout (void);
183 void meta_session_shutdown (void);
184
185 #endif