Sat, 10 Nov 2007 23:48:57 +0000
Fix size calculation when shadow is enabled.
Also, when the terminal is resized, the SIGWINCH callback needs to refresh
after endwin to get the correct new size of the terminal.
|
18114
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17853
diff
changeset
|
1 | /** |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17853
diff
changeset
|
2 | * GNT - The GLib Ncurses Toolkit |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17853
diff
changeset
|
3 | * |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17853
diff
changeset
|
4 | * GNT is the legal property of its developers, whose names are too numerous |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17853
diff
changeset
|
5 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17853
diff
changeset
|
6 | * source distribution. |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17853
diff
changeset
|
7 | * |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17853
diff
changeset
|
8 | * This library is free software; you can redistribute it and/or modify |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17853
diff
changeset
|
9 | * it under the terms of the GNU General Public License as published by |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17853
diff
changeset
|
10 | * the Free Software Foundation; either version 2 of the License, or |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17853
diff
changeset
|
11 | * (at your option) any later version. |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17853
diff
changeset
|
12 | * |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17853
diff
changeset
|
13 | * This program is distributed in the hope that it will be useful, |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17853
diff
changeset
|
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17853
diff
changeset
|
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17853
diff
changeset
|
16 | * GNU General Public License for more details. |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17853
diff
changeset
|
17 | * |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17853
diff
changeset
|
18 | * You should have received a copy of the GNU General Public License |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17853
diff
changeset
|
19 | * along with this program; if not, write to the Free Software |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
19562
diff
changeset
|
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
18114
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17853
diff
changeset
|
21 | */ |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17853
diff
changeset
|
22 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
23 | #define _GNU_SOURCE |
|
17853
b0e5cda11253
Fix libgnt compilation on BSD and solaris. This references #516.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17355
diff
changeset
|
24 | #if defined(__APPLE__) || defined(__unix__) |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
25 | #define _XOPEN_SOURCE_EXTENDED |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
26 | #endif |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
27 | |
|
14966
28f21386d822
[gaim-migrate @ 17676]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14962
diff
changeset
|
28 | #include "config.h" |
|
28f21386d822
[gaim-migrate @ 17676]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14962
diff
changeset
|
29 | |
|
20180
0028da879056
Fix compiling with old glib where glib/gprint.h doesn't exist, refs #3144
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
19859
diff
changeset
|
30 | #include <glib.h> |
|
15863
7411e672a88b
Re-order includes to fix this compile error:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15839
diff
changeset
|
31 | #include <ctype.h> |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
32 | #include <gmodule.h> |
|
15863
7411e672a88b
Re-order includes to fix this compile error:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15839
diff
changeset
|
33 | #include <stdlib.h> |
|
7411e672a88b
Re-order includes to fix this compile error:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15839
diff
changeset
|
34 | #include <string.h> |
|
15874
46df7421a1b5
Enable DEBUG_CFLAGS in libgnt and fix up a number of compile warnings and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15863
diff
changeset
|
35 | #include <time.h> |
|
15863
7411e672a88b
Re-order includes to fix this compile error:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15839
diff
changeset
|
36 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
37 | #include "gntwm.h" |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
38 | #include "gntstyle.h" |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
39 | #include "gntmarshal.h" |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
40 | #include "gnt.h" |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
41 | #include "gntbox.h" |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19307
diff
changeset
|
42 | #include "gntbutton.h" |
|
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19307
diff
changeset
|
43 | #include "gntentry.h" |
|
16188
2c7ee371f005
alt-/ to get a list of keybindings for the focused widget.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16056
diff
changeset
|
44 | #include "gntlabel.h" |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
45 | #include "gntmenu.h" |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
46 | #include "gnttextview.h" |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
47 | #include "gnttree.h" |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
48 | #include "gntutils.h" |
|
16188
2c7ee371f005
alt-/ to get a list of keybindings for the focused widget.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16056
diff
changeset
|
49 | #include "gntwindow.h" |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
50 | |
|
15802
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
51 | #define IDLE_CHECK_INTERVAL 5 /* 5 seconds */ |
|
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
52 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
53 | enum |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
54 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
55 | SIG_NEW_WIN, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
56 | SIG_DECORATE_WIN, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
57 | SIG_CLOSE_WIN, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
58 | SIG_CONFIRM_RESIZE, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
59 | SIG_RESIZED, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
60 | SIG_CONFIRM_MOVE, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
61 | SIG_MOVED, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
62 | SIG_UPDATE_WIN, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
63 | SIG_GIVE_FOCUS, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
64 | SIG_KEY_PRESS, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
65 | SIG_MOUSE_CLICK, |
|
18420
fd3ec9457e27
Add a callback that gets triggered by SIGWINCH.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18308
diff
changeset
|
66 | SIG_TERMINAL_REFRESH, |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
67 | SIGS |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
68 | }; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
69 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
70 | static guint signals[SIGS] = { 0 }; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
71 | static void gnt_wm_new_window_real(GntWM *wm, GntWidget *widget); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
72 | static void gnt_wm_win_resized(GntWM *wm, GntNode *node); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
73 | static void gnt_wm_win_moved(GntWM *wm, GntNode *node); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
74 | static void gnt_wm_give_focus(GntWM *wm, GntWidget *widget); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
75 | static void update_window_in_list(GntWM *wm, GntWidget *wid); |
|
15714
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
76 | static void shift_window(GntWM *wm, GntWidget *widget, int dir); |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
77 | static gboolean workspace_next(GntBindable *wm, GList *n); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
78 | static gboolean workspace_prev(GntBindable *wm, GList *n); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
79 | |
|
17094
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
80 | #ifndef NO_WIDECHAR |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
81 | static int widestringwidth(wchar_t *wide); |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
82 | #endif |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
83 | |
|
15129
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
84 | static gboolean write_already(gpointer data); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
85 | static int write_timeout; |
|
15802
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
86 | static time_t last_active_time; |
|
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
87 | static gboolean idle_update; |
|
16524
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
88 | static GList *act = NULL; /* list of WS with unseen activitiy */ |
|
17196
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
89 | static gboolean ignore_keys = FALSE; |
|
15129
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
90 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
91 | static GList * |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
92 | g_list_bring_to_front(GList *list, gpointer data) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
93 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
94 | list = g_list_remove(list, data); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
95 | list = g_list_prepend(list, data); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
96 | return list; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
97 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
98 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
99 | static void |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
100 | free_node(gpointer data) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
101 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
102 | GntNode *node = data; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
103 | hide_panel(node->panel); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
104 | del_panel(node->panel); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
105 | g_free(node); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
106 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
107 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
108 | void |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
109 | gnt_wm_copy_win(GntWidget *widget, GntNode *node) |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
110 | { |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
111 | WINDOW *src, *dst; |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
112 | if (!node) |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
113 | return; |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
114 | src = widget->window; |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
115 | dst = node->window; |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
116 | copywin(src, dst, node->scroll, 0, 0, 0, getmaxy(dst) - 1, getmaxx(dst) - 1, 0); |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
117 | } |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
118 | |
|
17094
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
119 | /** |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
120 | * The following is a workaround for a bug in most versions of ncursesw. |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
121 | * Read about it in: http://article.gmane.org/gmane.comp.lib.ncurses.bugs/2751 |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
122 | * |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
123 | * In short, if a panel hides one cell of a multi-cell character, then the rest |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
124 | * of the characters in that line get screwed. The workaround here is to erase |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
125 | * any such character preemptively. |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
126 | * |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
127 | * Caveat: If a wide character is erased, and the panel above it is moved enough |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
128 | * to expose the entire character, it is not always redrawn. |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
129 | */ |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
130 | static void |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
131 | work_around_for_ncurses_bug() |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
132 | { |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
133 | #ifndef NO_WIDECHAR |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
134 | PANEL *panel = NULL; |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
135 | while ((panel = panel_below(panel)) != NULL) { |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
136 | int sx, ex, sy, ey, w, y; |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
137 | cchar_t ch; |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
138 | PANEL *below = panel; |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
139 | |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
140 | sx = panel->win->_begx; |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
141 | ex = panel->win->_maxx + sx; |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
142 | sy = panel->win->_begy; |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
143 | ey = panel->win->_maxy + sy; |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
144 | |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
145 | while ((below = panel_below(below)) != NULL) { |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
146 | if (sy > below->win->_begy + below->win->_maxy || |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
147 | ey < below->win->_begy) |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
148 | continue; |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
149 | if (sx > below->win->_begx + below->win->_maxx || |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
150 | ex < below->win->_begx) |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
151 | continue; |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
152 | for (y = MAX(sy, below->win->_begy); y <= MIN(ey, below->win->_begy + below->win->_maxy); y++) { |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
153 | if (mvwin_wch(below->win, y - below->win->_begy, sx - 1 - below->win->_begx, &ch) != OK) |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
154 | goto right; |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
155 | w = widestringwidth(ch.chars); |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
156 | if (w > 1 && (ch.attr & 1)) { |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
157 | ch.chars[0] = ' '; |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
158 | ch.attr &= ~ A_CHARTEXT; |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
159 | mvwadd_wch(below->win, y - below->win->_begy, sx - 1 - below->win->_begx, &ch); |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
160 | touchline(below->win, y - below->win->_begy, 1); |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
161 | } |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
162 | right: |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
163 | if (mvwin_wch(below->win, y - below->win->_begy, ex + 1 - below->win->_begx, &ch) != OK) |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
164 | continue; |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
165 | w = widestringwidth(ch.chars); |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
166 | if (w > 1 && !(ch.attr & 1)) { |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
167 | ch.chars[0] = ' '; |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
168 | ch.attr &= ~ A_CHARTEXT; |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
169 | mvwadd_wch(below->win, y - below->win->_begy, ex + 1 - below->win->_begx, &ch); |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
170 | touchline(below->win, y - below->win->_begy, 1); |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
171 | } |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
172 | } |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
173 | } |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
174 | } |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
175 | #endif |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
176 | } |
|
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
177 | |
|
16524
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
178 | static void |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
179 | update_act_msg() |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
180 | { |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
181 | GntWidget *label; |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
182 | GList *iter; |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
183 | static GntWidget *message = NULL; |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
184 | GString *text = g_string_new("act: "); |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
185 | if (message) |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
186 | gnt_widget_destroy(message); |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
187 | if (g_list_length(act) == 0) |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
188 | return; |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
189 | for (iter = act; iter; iter = iter->next) { |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
190 | GntWS *ws = iter->data; |
| 18133 | 191 | g_string_append_printf(text, "%s, ", gnt_ws_get_name(ws)); |
|
16524
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
192 | } |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
193 | g_string_erase(text, text->len - 2, 2); |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
194 | message = gnt_vbox_new(FALSE); |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
195 | label = gnt_label_new_with_format(text->str, GNT_TEXT_FLAG_BOLD | GNT_TEXT_FLAG_HIGHLIGHT); |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
196 | GNT_WIDGET_UNSET_FLAGS(GNT_BOX(message), GNT_WIDGET_CAN_TAKE_FOCUS); |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
197 | GNT_WIDGET_SET_FLAGS(GNT_BOX(message), GNT_WIDGET_TRANSIENT); |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
198 | gnt_box_add_widget(GNT_BOX(message), label); |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
199 | gnt_widget_set_name(message, "wm-message"); |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
200 | gnt_widget_set_position(message, 0, 0); |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
201 | gnt_widget_draw(message); |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
202 | g_string_free(text, TRUE); |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
203 | } |
|
17139
6a6f27caf79e
propagate from branch 'im.pidgin.pidgin' (head 41a52fb8d3b6772f937ad085d9bae4b361898362)
Richard Nelson <wabz@pidgin.im>
diff
changeset
|
204 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
205 | static gboolean |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
206 | update_screen(GntWM *wm) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
207 | { |
|
18599
7e31405a2cbb
Allow executing another application (eg. PAGER) that will use the same
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18596
diff
changeset
|
208 | if (wm->mode == GNT_KP_MODE_WAIT_ON_CHILD) |
|
7e31405a2cbb
Allow executing another application (eg. PAGER) that will use the same
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18596
diff
changeset
|
209 | return TRUE; |
|
7e31405a2cbb
Allow executing another application (eg. PAGER) that will use the same
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18596
diff
changeset
|
210 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
211 | if (wm->menu) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
212 | GntMenu *top = wm->menu; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
213 | while (top) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
214 | GntNode *node = g_hash_table_lookup(wm->nodes, top); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
215 | if (node) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
216 | top_panel(node->panel); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
217 | top = top->submenu; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
218 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
219 | } |
|
17094
a728bde379cf
A workaround for an ncurses bug about multi-cell characters and panels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16584
diff
changeset
|
220 | work_around_for_ncurses_bug(); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
221 | update_panels(); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
222 | doupdate(); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
223 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
224 | } |
|
15129
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
225 | |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
226 | static gboolean |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
227 | sanitize_position(GntWidget *widget, int *x, int *y) |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
228 | { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
229 | int X_MAX = getmaxx(stdscr); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
230 | int Y_MAX = getmaxy(stdscr) - 1; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
231 | int w, h; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
232 | int nx, ny; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
233 | gboolean changed = FALSE; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
234 | |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
235 | gnt_widget_get_size(widget, &w, &h); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
236 | if (x) { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
237 | if (*x + w > X_MAX) { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
238 | nx = MAX(0, X_MAX - w); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
239 | if (nx != *x) { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
240 | *x = nx; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
241 | changed = TRUE; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
242 | } |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
243 | } |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
244 | } |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
245 | if (y) { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
246 | if (*y + h > Y_MAX) { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
247 | ny = MAX(0, Y_MAX - h); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
248 | if (ny != *y) { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
249 | *y = ny; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
250 | changed = TRUE; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
251 | } |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
252 | } |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
253 | } |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
254 | return changed; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
255 | } |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
256 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
257 | static void |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
258 | refresh_node(GntWidget *widget, GntNode *node, gpointer null) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
259 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
260 | int x, y, w, h; |
|
15129
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
261 | int nw, nh; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
262 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
263 | int X_MAX = getmaxx(stdscr); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
264 | int Y_MAX = getmaxy(stdscr) - 1; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
265 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
266 | gnt_widget_get_position(widget, &x, &y); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
267 | gnt_widget_get_size(widget, &w, &h); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
268 | |
|
15129
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
269 | if (sanitize_position(widget, &x, &y)) |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
270 | gnt_screen_move_widget(widget, x, y); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
271 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
272 | nw = MIN(w, X_MAX); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
273 | nh = MIN(h, Y_MAX); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
274 | if (nw != w || nh != h) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
275 | gnt_screen_resize_widget(widget, nw, nh); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
276 | } |
|
15129
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
277 | |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
278 | static void |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
279 | read_window_positions(GntWM *wm) |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
280 | { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
281 | #if GLIB_CHECK_VERSION(2,6,0) |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
282 | GKeyFile *gfile = g_key_file_new(); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
283 | char *filename = g_build_filename(g_get_home_dir(), ".gntpositions", NULL); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
284 | GError *error = NULL; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
285 | char **keys; |
|
15219
4d959b4386bb
[gaim-migrate @ 17943]
Mark Doliner <markdoliner@pidgin.im>
parents:
15199
diff
changeset
|
286 | gsize nk; |
|
15129
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
287 | |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
288 | if (!g_key_file_load_from_file(gfile, filename, G_KEY_FILE_NONE, &error)) { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
289 | g_printerr("GntWM: %s\n", error->message); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
290 | g_error_free(error); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
291 | g_free(filename); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
292 | return; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
293 | } |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
294 | |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
295 | keys = g_key_file_get_keys(gfile, "positions", &nk, &error); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
296 | if (error) { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
297 | g_printerr("GntWM: %s\n", error->message); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
298 | g_error_free(error); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
299 | error = NULL; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
300 | } else { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
301 | while (nk--) { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
302 | char *title = keys[nk]; |
|
15219
4d959b4386bb
[gaim-migrate @ 17943]
Mark Doliner <markdoliner@pidgin.im>
parents:
15199
diff
changeset
|
303 | gsize l; |
|
15129
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
304 | char **coords = g_key_file_get_string_list(gfile, "positions", title, &l, NULL); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
305 | if (l == 2) { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
306 | int x = atoi(coords[0]); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
307 | int y = atoi(coords[1]); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
308 | GntPosition *p = g_new0(GntPosition, 1); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
309 | p->x = x; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
310 | p->y = y; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
311 | g_hash_table_replace(wm->positions, g_strdup(title + 1), p); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
312 | } else { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
313 | g_printerr("GntWM: Invalid number of arguments for positioing a window.\n"); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
314 | } |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
315 | g_strfreev(coords); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
316 | } |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
317 | g_strfreev(keys); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
318 | } |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
319 | |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
320 | g_free(filename); |
| 16025 | 321 | g_key_file_free(gfile); |
|
15129
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
322 | #endif |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
323 | } |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
324 | |
|
15802
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
325 | static gboolean check_idle(gpointer n) |
|
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
326 | { |
|
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
327 | if (idle_update) { |
|
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
328 | time(&last_active_time); |
|
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
329 | idle_update = FALSE; |
|
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
330 | } |
|
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
331 | return TRUE; |
|
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
332 | } |
|
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
333 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
334 | static void |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
335 | gnt_wm_init(GTypeInstance *instance, gpointer class) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
336 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
337 | GntWM *wm = GNT_WM(instance); |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
338 | wm->workspaces = NULL; |
|
16525
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
339 | wm->name_places = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); |
|
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
340 | wm->title_places = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
341 | gnt_style_read_workspaces(wm); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
342 | if (wm->workspaces == NULL) { |
|
18137
a8c54ed05eee
F9 to create a new workspace.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18133
diff
changeset
|
343 | wm->cws = gnt_ws_new("default"); |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
344 | gnt_wm_add_workspace(wm, wm->cws); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
345 | } else { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
346 | wm->cws = wm->workspaces->data; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
347 | } |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
348 | wm->event_stack = FALSE; |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
349 | wm->tagged = NULL; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
350 | wm->windows = NULL; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
351 | wm->actions = NULL; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
352 | wm->nodes = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, free_node); |
|
15129
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
353 | wm->positions = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
354 | if (gnt_style_get_bool(GNT_STYLE_REMPOS, TRUE)) |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
355 | read_window_positions(wm); |
|
15802
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
356 | g_timeout_add(IDLE_CHECK_INTERVAL * 1000, check_idle, NULL); |
|
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
357 | time(&last_active_time); |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
358 | gnt_wm_switch_workspace(wm, 0); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
359 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
360 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
361 | static void |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
362 | switch_window(GntWM *wm, int direction) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
363 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
364 | GntWidget *w = NULL, *wid = NULL; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
365 | int pos; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
366 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
367 | if (wm->_list.window || wm->menu) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
368 | return; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
369 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
370 | if (!wm->cws->ordered || !wm->cws->ordered->next) |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
371 | return; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
372 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
373 | w = wm->cws->ordered->data; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
374 | pos = g_list_index(wm->cws->list, w); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
375 | pos += direction; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
376 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
377 | if (pos < 0) |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
378 | wid = g_list_last(wm->cws->list)->data; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
379 | else if (pos >= g_list_length(wm->cws->list)) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
380 | wid = wm->cws->list->data; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
381 | else if (pos >= 0) |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
382 | wid = g_list_nth_data(wm->cws->list, pos); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
383 | |
|
18567
8dd8eae7a1aa
Fix some focus issues.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18420
diff
changeset
|
384 | gnt_wm_raise_window(wm, wid); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
385 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
386 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
387 | static gboolean |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
388 | window_next(GntBindable *bindable, GList *null) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
389 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
390 | GntWM *wm = GNT_WM(bindable); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
391 | switch_window(wm, 1); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
392 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
393 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
394 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
395 | static gboolean |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
396 | window_prev(GntBindable *bindable, GList *null) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
397 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
398 | GntWM *wm = GNT_WM(bindable); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
399 | switch_window(wm, -1); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
400 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
401 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
402 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
403 | static gboolean |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
404 | switch_window_n(GntBindable *bind, GList *list) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
405 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
406 | GntWM *wm = GNT_WM(bind); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
407 | GList *l; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
408 | int n; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
409 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
410 | if (!wm->cws->ordered) |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
411 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
412 | |
|
15272
c6e322c9c9b2
[gaim-migrate @ 18000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15258
diff
changeset
|
413 | if (list) |
|
c6e322c9c9b2
[gaim-migrate @ 18000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15258
diff
changeset
|
414 | n = GPOINTER_TO_INT(list->data); |
|
c6e322c9c9b2
[gaim-migrate @ 18000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15258
diff
changeset
|
415 | else |
|
c6e322c9c9b2
[gaim-migrate @ 18000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15258
diff
changeset
|
416 | n = 0; |
|
15874
46df7421a1b5
Enable DEBUG_CFLAGS in libgnt and fix up a number of compile warnings and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15863
diff
changeset
|
417 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
418 | if ((l = g_list_nth(wm->cws->list, n)) != NULL) |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
419 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
420 | gnt_wm_raise_window(wm, l->data); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
421 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
422 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
423 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
424 | } |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
425 | |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
426 | static gboolean |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
427 | window_scroll_up(GntBindable *bindable, GList *null) |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
428 | { |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
429 | GntWM *wm = GNT_WM(bindable); |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
430 | GntWidget *window; |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
431 | GntNode *node; |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
432 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
433 | if (!wm->cws->ordered) |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
434 | return TRUE; |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
435 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
436 | window = wm->cws->ordered->data; |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
437 | node = g_hash_table_lookup(wm->nodes, window); |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
438 | if (!node) |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
439 | return TRUE; |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
440 | |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
441 | if (node->scroll) { |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
442 | node->scroll--; |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
443 | gnt_wm_copy_win(window, node); |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
444 | update_screen(wm); |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
445 | } |
|
15874
46df7421a1b5
Enable DEBUG_CFLAGS in libgnt and fix up a number of compile warnings and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15863
diff
changeset
|
446 | return TRUE; |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
447 | } |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
448 | |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
449 | static gboolean |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
450 | window_scroll_down(GntBindable *bindable, GList *null) |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
451 | { |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
452 | GntWM *wm = GNT_WM(bindable); |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
453 | GntWidget *window; |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
454 | GntNode *node; |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
455 | int w, h; |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
456 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
457 | if (!wm->cws->ordered) |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
458 | return TRUE; |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
459 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
460 | window = wm->cws->ordered->data; |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
461 | node = g_hash_table_lookup(wm->nodes, window); |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
462 | if (!node) |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
463 | return TRUE; |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
464 | |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
465 | gnt_widget_get_size(window, &w, &h); |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
466 | if (h - node->scroll > getmaxy(node->window)) { |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
467 | node->scroll++; |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
468 | gnt_wm_copy_win(window, node); |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
469 | update_screen(wm); |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
470 | } |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
471 | return TRUE; |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
472 | } |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
473 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
474 | static gboolean |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
475 | window_close(GntBindable *bindable, GList *null) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
476 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
477 | GntWM *wm = GNT_WM(bindable); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
478 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
479 | if (wm->_list.window) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
480 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
481 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
482 | if (wm->cws->ordered) { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
483 | gnt_widget_destroy(wm->cws->ordered->data); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
484 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
485 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
486 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
487 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
488 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
489 | static void |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
490 | destroy__list(GntWidget *widget, GntWM *wm) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
491 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
492 | wm->_list.window = NULL; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
493 | wm->_list.tree = NULL; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
494 | wm->windows = NULL; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
495 | wm->actions = NULL; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
496 | update_screen(wm); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
497 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
498 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
499 | static void |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
500 | setup__list(GntWM *wm) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
501 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
502 | GntWidget *tree, *win; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
503 | win = wm->_list.window = gnt_box_new(FALSE, FALSE); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
504 | gnt_box_set_toplevel(GNT_BOX(win), TRUE); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
505 | gnt_box_set_pad(GNT_BOX(win), 0); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
506 | GNT_WIDGET_SET_FLAGS(win, GNT_WIDGET_TRANSIENT); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
507 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
508 | tree = wm->_list.tree = gnt_tree_new(); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
509 | gnt_box_add_widget(GNT_BOX(win), tree); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
510 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
511 | g_signal_connect(G_OBJECT(win), "destroy", G_CALLBACK(destroy__list), wm); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
512 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
513 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
514 | static void |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
515 | window_list_activate(GntTree *tree, GntWM *wm) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
516 | { |
|
16523
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
517 | GntBindable *sel = gnt_tree_get_selection_data(GNT_TREE(tree)); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
518 | |
|
16523
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
519 | gnt_widget_destroy(wm->_list.window); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
520 | |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
521 | if (!sel) |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
522 | return; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
523 | |
|
16523
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
524 | if (GNT_IS_WS(sel)) { |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
525 | gnt_wm_switch_workspace(wm, g_list_index(wm->workspaces, sel)); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
526 | } else { |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
527 | gnt_wm_raise_window(wm, GNT_WIDGET(sel)); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
528 | } |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
529 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
530 | |
|
15714
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
531 | static void |
|
16523
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
532 | populate_window_list(GntWM *wm, gboolean workspace) |
|
15714
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
533 | { |
|
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
534 | GList *iter; |
|
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
535 | GntTree *tree = GNT_TREE(wm->windows->tree); |
|
16523
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
536 | if (!workspace) { |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
537 | for (iter = wm->cws->list; iter; iter = iter->next) { |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
538 | GntBox *box = GNT_BOX(iter->data); |
|
15714
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
539 | |
|
16523
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
540 | gnt_tree_add_row_last(tree, box, |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
541 | gnt_tree_create_row(tree, box->title), NULL); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
542 | update_window_in_list(wm, GNT_WIDGET(box)); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
543 | } |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
544 | } else { |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
545 | GList *ws = wm->workspaces; |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
546 | for (; ws; ws = ws->next) { |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
547 | gnt_tree_add_row_last(tree, ws->data, |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
548 | gnt_tree_create_row(tree, gnt_ws_get_name(GNT_WS(ws->data))), NULL); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
549 | for (iter = GNT_WS(ws->data)->list; iter; iter = iter->next) { |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
550 | GntBox *box = GNT_BOX(iter->data); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
551 | |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
552 | gnt_tree_add_row_last(tree, box, |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
553 | gnt_tree_create_row(tree, box->title), ws->data); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
554 | update_window_in_list(wm, GNT_WIDGET(box)); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
555 | } |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
556 | } |
|
15714
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
557 | } |
|
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
558 | } |
|
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
559 | |
|
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
560 | static gboolean |
|
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
561 | window_list_key_pressed(GntWidget *widget, const char *text, GntWM *wm) |
|
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
562 | { |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
563 | if (text[1] == 0 && wm->cws->ordered) { |
|
16523
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
564 | GntBindable *sel = gnt_tree_get_selection_data(GNT_TREE(widget)); |
|
15714
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
565 | switch (text[0]) { |
|
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
566 | case '-': |
|
16189
eec6c18f2abf
These bindings are easier for changing window order.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16188
diff
changeset
|
567 | case ',': |
|
16523
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
568 | if (GNT_IS_WS(sel)) { |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
569 | /* reorder the workspace. */ |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
570 | } else |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
571 | shift_window(wm, GNT_WIDGET(sel), -1); |
|
15714
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
572 | break; |
|
16189
eec6c18f2abf
These bindings are easier for changing window order.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16188
diff
changeset
|
573 | case '=': |
|
eec6c18f2abf
These bindings are easier for changing window order.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16188
diff
changeset
|
574 | case '.': |
|
16523
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
575 | if (GNT_IS_WS(sel)) { |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
576 | /* reorder the workspace. */ |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
577 | } else |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
578 | shift_window(wm, GNT_WIDGET(sel), 1); |
|
15714
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
579 | break; |
|
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
580 | default: |
|
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
581 | return FALSE; |
|
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
582 | } |
|
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
583 | gnt_tree_remove_all(GNT_TREE(widget)); |
|
16523
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
584 | populate_window_list(wm, GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "workspace"))); |
|
15714
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
585 | gnt_tree_set_selected(GNT_TREE(widget), sel); |
|
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
586 | return TRUE; |
|
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
587 | } |
|
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
588 | return FALSE; |
|
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
589 | } |
|
59a1acdd2c7b
Allow reordering windows from the window list. I find it much easier and faster.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
590 | |
|
16523
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
591 | static void |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
592 | list_of_windows(GntWM *wm, gboolean workspace) |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
593 | { |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
594 | GntWidget *tree, *win; |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
595 | setup__list(wm); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
596 | wm->windows = &wm->_list; |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
597 | |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
598 | win = wm->windows->window; |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
599 | tree = wm->windows->tree; |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
600 | |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
601 | gnt_box_set_title(GNT_BOX(win), workspace ? "Workspace List" : "Window List"); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
602 | |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
603 | populate_window_list(wm, workspace); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
604 | |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
605 | if (wm->cws->ordered) |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
606 | gnt_tree_set_selected(GNT_TREE(tree), wm->cws->ordered->data); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
607 | else if (workspace) |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
608 | gnt_tree_set_selected(GNT_TREE(tree), wm->cws); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
609 | |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
610 | g_signal_connect(G_OBJECT(tree), "activate", G_CALLBACK(window_list_activate), wm); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
611 | g_signal_connect(G_OBJECT(tree), "key_pressed", G_CALLBACK(window_list_key_pressed), wm); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
612 | g_object_set_data(G_OBJECT(tree), "workspace", GINT_TO_POINTER(workspace)); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
613 | |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
614 | gnt_tree_set_col_width(GNT_TREE(tree), 0, getmaxx(stdscr) / 3); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
615 | gnt_widget_set_size(tree, 0, getmaxy(stdscr) / 2); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
616 | gnt_widget_set_position(win, getmaxx(stdscr) / 3, getmaxy(stdscr) / 4); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
617 | |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
618 | gnt_widget_show(win); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
619 | } |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
620 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
621 | static gboolean |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
622 | window_list(GntBindable *bindable, GList *null) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
623 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
624 | GntWM *wm = GNT_WM(bindable); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
625 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
626 | if (wm->_list.window || wm->menu) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
627 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
628 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
629 | if (!wm->cws->ordered) |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
630 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
631 | |
|
16523
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
632 | list_of_windows(wm, FALSE); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
633 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
634 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
635 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
636 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
637 | static gboolean |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
638 | dump_screen(GntBindable *bindable, GList *null) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
639 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
640 | int x, y; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
641 | chtype old = 0, now = 0; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
642 | FILE *file = fopen("dump.html", "w"); |
|
17181
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
643 | struct { |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
644 | char ascii; |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
645 | char *unicode; |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
646 | } unis[] = { |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
647 | {'q', "─"}, |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
648 | {'t', "├"}, |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
649 | {'u', "┤"}, |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
650 | {'x', "│"}, |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
651 | {'-', "↑"}, |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
652 | {'.', "↓"}, |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
653 | {'l', "┌"}, |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
654 | {'k', "┐"}, |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
655 | {'m', "└"}, |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
656 | {'j', "┘"}, |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
657 | {'a', "▒"}, |
|
18788
6617cf363381
Add a missing line-drawing character in the HTML screen-dump.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18756
diff
changeset
|
658 | {'n', "┼"}, |
|
19197
172671e74863
Add two more missing characters for the HTML dump.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19180
diff
changeset
|
659 | {'w', "┬"}, |
|
172671e74863
Add two more missing characters for the HTML dump.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19180
diff
changeset
|
660 | {'v', "┴"}, |
|
17181
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
661 | {'\0', NULL} |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
662 | }; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
663 | |
|
17181
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
664 | fprintf(file, "<head>\n <meta http-equiv='Content-Type' content='text/html; charset=utf-8' />\n</head>\n<body>\n"); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
665 | fprintf(file, "<pre>"); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
666 | for (y = 0; y < getmaxy(stdscr); y++) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
667 | for (x = 0; x < getmaxx(stdscr); x++) { |
|
17181
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
668 | char ch[2] = {0, 0}, *print; |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
669 | #ifdef NO_WIDECHAR |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
670 | now = mvwinch(curscr, y, x); |
|
17181
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
671 | ch[0] = now & A_CHARTEXT; |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
672 | now ^= ch[0]; |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
673 | #else |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
674 | cchar_t wch; |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
675 | char unicode[12]; |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
676 | mvwin_wch(curscr, y, x, &wch); |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
677 | now = wch.attr; |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
678 | ch[0] = (char)(wch.chars[0] & 0xff); |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
679 | #endif |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
680 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
681 | #define CHECK(attr, start, end) \ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
682 | do \ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
683 | { \ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
684 | if (now & attr) \ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
685 | { \ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
686 | if (!(old & attr)) \ |
|
15258
ca95e4c752e8
[gaim-migrate @ 17985]
Mark Doliner <markdoliner@pidgin.im>
parents:
15219
diff
changeset
|
687 | fprintf(file, "%s", start); \ |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
688 | } \ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
689 | else if (old & attr) \ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
690 | { \ |
|
15258
ca95e4c752e8
[gaim-migrate @ 17985]
Mark Doliner <markdoliner@pidgin.im>
parents:
15219
diff
changeset
|
691 | fprintf(file, "%s", end); \ |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
692 | } \ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
693 | } while (0) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
694 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
695 | CHECK(A_BOLD, "<b>", "</b>"); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
696 | CHECK(A_UNDERLINE, "<u>", "</u>"); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
697 | CHECK(A_BLINK, "<blink>", "</blink>"); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
698 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
699 | if ((now & A_COLOR) != (old & A_COLOR) || |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
700 | (now & A_REVERSE) != (old & A_REVERSE)) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
701 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
702 | int ret; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
703 | short fgp, bgp, r, g, b; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
704 | struct |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
705 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
706 | int r, g, b; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
707 | } fg, bg; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
708 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
709 | ret = pair_content(PAIR_NUMBER(now & A_COLOR), &fgp, &bgp); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
710 | if (fgp == -1) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
711 | fgp = COLOR_BLACK; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
712 | if (bgp == -1) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
713 | bgp = COLOR_WHITE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
714 | if (now & A_REVERSE) |
|
17230
1442df274a24
Fix a compiler warning by using a temporary variable for swapping.
Richard Laager <rlaager@pidgin.im>
parents:
17181
diff
changeset
|
715 | { |
|
1442df274a24
Fix a compiler warning by using a temporary variable for swapping.
Richard Laager <rlaager@pidgin.im>
parents:
17181
diff
changeset
|
716 | short tmp = fgp; |
|
1442df274a24
Fix a compiler warning by using a temporary variable for swapping.
Richard Laager <rlaager@pidgin.im>
parents:
17181
diff
changeset
|
717 | fgp = bgp; |
|
1442df274a24
Fix a compiler warning by using a temporary variable for swapping.
Richard Laager <rlaager@pidgin.im>
parents:
17181
diff
changeset
|
718 | bgp = tmp; |
|
1442df274a24
Fix a compiler warning by using a temporary variable for swapping.
Richard Laager <rlaager@pidgin.im>
parents:
17181
diff
changeset
|
719 | } |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
720 | ret = color_content(fgp, &r, &g, &b); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
721 | fg.r = r; fg.b = b; fg.g = g; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
722 | ret = color_content(bgp, &r, &g, &b); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
723 | bg.r = r; bg.b = b; bg.g = g; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
724 | #define ADJUST(x) (x = x * 255 / 1000) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
725 | ADJUST(fg.r); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
726 | ADJUST(fg.g); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
727 | ADJUST(fg.b); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
728 | ADJUST(bg.r); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
729 | ADJUST(bg.b); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
730 | ADJUST(bg.g); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
731 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
732 | if (x) fprintf(file, "</span>"); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
733 | fprintf(file, "<span style=\"background:#%02x%02x%02x;color:#%02x%02x%02x\">", |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
734 | bg.r, bg.g, bg.b, fg.r, fg.g, fg.b); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
735 | } |
|
17181
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
736 | print = ch; |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
737 | #ifndef NO_WIDECHAR |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
738 | if (wch.chars[0] > 255) { |
|
19562
f7931803273a
Get rid of compile warnings on older glib.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19317
diff
changeset
|
739 | snprintf(unicode, sizeof(unicode), "&#x%x;", (unsigned int)wch.chars[0]); |
|
17181
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
740 | print = unicode; |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
741 | } |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
742 | #endif |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
743 | if (now & A_ALTCHARSET) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
744 | { |
|
17181
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
745 | int u; |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
746 | for (u = 0; unis[u].ascii; u++) { |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
747 | if (ch[0] == unis[u].ascii) { |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
748 | print = unis[u].unicode; |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
749 | break; |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
750 | } |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
751 | } |
|
17181
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
752 | if (!unis[u].ascii) |
|
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
753 | print = " "; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
754 | } |
|
17181
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
755 | if (ch[0] == '&') |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
756 | fprintf(file, "&"); |
|
17181
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
757 | else if (ch[0] == '<') |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
758 | fprintf(file, "<"); |
|
17181
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
759 | else if (ch[0] == '>') |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
760 | fprintf(file, ">"); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
761 | else |
|
17181
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
762 | fprintf(file, "%s", print); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
763 | old = now; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
764 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
765 | fprintf(file, "</span>\n"); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
766 | old = 0; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
767 | } |
|
17181
cc871788e3f8
Generate nicer HTML dumps.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17094
diff
changeset
|
768 | fprintf(file, "</pre>\n</body>"); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
769 | fclose(file); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
770 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
771 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
772 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
773 | static void |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
774 | shift_window(GntWM *wm, GntWidget *widget, int dir) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
775 | { |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
776 | GList *all = wm->cws->list; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
777 | GList *list = g_list_find(all, widget); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
778 | int length, pos; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
779 | if (!list) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
780 | return; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
781 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
782 | length = g_list_length(all); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
783 | pos = g_list_position(all, list); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
784 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
785 | pos += dir; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
786 | if (dir > 0) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
787 | pos++; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
788 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
789 | if (pos < 0) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
790 | pos = length; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
791 | else if (pos > length) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
792 | pos = 0; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
793 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
794 | all = g_list_insert(all, widget, pos); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
795 | all = g_list_delete_link(all, list); |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
796 | wm->cws->list = all; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
797 | gnt_ws_draw_taskbar(wm->cws, FALSE); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
798 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
799 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
800 | static gboolean |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
801 | shift_left(GntBindable *bindable, GList *null) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
802 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
803 | GntWM *wm = GNT_WM(bindable); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
804 | if (wm->_list.window) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
805 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
806 | |
|
18756
5498c1e29cca
Crash fixes from Eric Polino.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18638
diff
changeset
|
807 | if(!wm->cws->ordered) |
|
5498c1e29cca
Crash fixes from Eric Polino.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18638
diff
changeset
|
808 | return FALSE; |
|
5498c1e29cca
Crash fixes from Eric Polino.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18638
diff
changeset
|
809 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
810 | shift_window(wm, wm->cws->ordered->data, -1); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
811 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
812 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
813 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
814 | static gboolean |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
815 | shift_right(GntBindable *bindable, GList *null) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
816 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
817 | GntWM *wm = GNT_WM(bindable); |
|
18690
85033822cf93
merge of '63410823a172d188421e84f73dfbaed4a20be58a'
Eric Polino <aluink@pidgin.im>
parents:
18688
diff
changeset
|
818 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
819 | if (wm->_list.window) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
820 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
821 | |
|
18756
5498c1e29cca
Crash fixes from Eric Polino.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18638
diff
changeset
|
822 | if(!wm->cws->ordered) |
|
5498c1e29cca
Crash fixes from Eric Polino.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18638
diff
changeset
|
823 | return FALSE; |
|
5498c1e29cca
Crash fixes from Eric Polino.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18638
diff
changeset
|
824 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
825 | shift_window(wm, wm->cws->ordered->data, 1); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
826 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
827 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
828 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
829 | static void |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
830 | action_list_activate(GntTree *tree, GntWM *wm) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
831 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
832 | GntAction *action = gnt_tree_get_selection_data(tree); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
833 | action->callback(); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
834 | gnt_widget_destroy(wm->_list.window); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
835 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
836 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
837 | static int |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
838 | compare_action(gconstpointer p1, gconstpointer p2) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
839 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
840 | const GntAction *a1 = p1; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
841 | const GntAction *a2 = p2; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
842 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
843 | return g_utf8_collate(a1->label, a2->label); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
844 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
845 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
846 | static gboolean |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
847 | list_actions(GntBindable *bindable, GList *null) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
848 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
849 | GntWidget *tree, *win; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
850 | GList *iter; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
851 | GntWM *wm = GNT_WM(bindable); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
852 | if (wm->_list.window || wm->menu) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
853 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
854 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
855 | if (wm->acts == NULL) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
856 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
857 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
858 | setup__list(wm); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
859 | wm->actions = &wm->_list; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
860 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
861 | win = wm->actions->window; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
862 | tree = wm->actions->tree; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
863 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
864 | gnt_box_set_title(GNT_BOX(win), "Actions"); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
865 | GNT_WIDGET_SET_FLAGS(tree, GNT_WIDGET_NO_BORDER); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
866 | /* XXX: Do we really want this? */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
867 | gnt_tree_set_compare_func(GNT_TREE(tree), compare_action); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
868 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
869 | for (iter = wm->acts; iter; iter = iter->next) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
870 | GntAction *action = iter->data; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
871 | gnt_tree_add_row_last(GNT_TREE(tree), action, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
872 | gnt_tree_create_row(GNT_TREE(tree), action->label), NULL); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
873 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
874 | g_signal_connect(G_OBJECT(tree), "activate", G_CALLBACK(action_list_activate), wm); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
875 | gnt_widget_set_size(tree, 0, g_list_length(wm->acts)); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
876 | gnt_widget_set_position(win, 0, getmaxy(stdscr) - 3 - g_list_length(wm->acts)); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
877 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
878 | gnt_widget_show(win); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
879 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
880 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
881 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
882 | #ifndef NO_WIDECHAR |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
883 | static int |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
884 | widestringwidth(wchar_t *wide) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
885 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
886 | int len, ret; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
887 | char *string; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
888 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
889 | len = wcstombs(NULL, wide, 0) + 1; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
890 | string = g_new0(char, len); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
891 | wcstombs(string, wide, len); |
|
18809
5ba9bf0804fe
Do a NULL-check to prevent a crash.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18788
diff
changeset
|
892 | ret = string ? gnt_util_onscreen_width(string, NULL) : 1; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
893 | g_free(string); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
894 | return ret; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
895 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
896 | #endif |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
897 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
898 | /* Returns the onscreen width of the character at the position */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
899 | static int |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
900 | reverse_char(WINDOW *d, int y, int x, gboolean set) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
901 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
902 | #define DECIDE(ch) (set ? ((ch) | A_REVERSE) : ((ch) & ~A_REVERSE)) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
903 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
904 | #ifdef NO_WIDECHAR |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
905 | chtype ch; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
906 | ch = mvwinch(d, y, x); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
907 | mvwaddch(d, y, x, DECIDE(ch)); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
908 | return 1; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
909 | #else |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
910 | cchar_t ch; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
911 | int wc = 1; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
912 | if (mvwin_wch(d, y, x, &ch) == OK) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
913 | wc = widestringwidth(ch.chars); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
914 | ch.attr = DECIDE(ch.attr); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
915 | ch.attr &= WA_ATTRIBUTES; /* XXX: This is a workaround for a bug */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
916 | mvwadd_wch(d, y, x, &ch); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
917 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
918 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
919 | return wc; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
920 | #endif |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
921 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
922 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
923 | static void |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
924 | window_reverse(GntWidget *win, gboolean set, GntWM *wm) |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
925 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
926 | int i; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
927 | int w, h; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
928 | WINDOW *d; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
929 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
930 | if (GNT_WIDGET_IS_FLAG_SET(win, GNT_WIDGET_NO_BORDER)) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
931 | return; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
932 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
933 | d = win->window; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
934 | gnt_widget_get_size(win, &w, &h); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
935 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
936 | if (gnt_widget_has_shadow(win)) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
937 | --w; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
938 | --h; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
939 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
940 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
941 | /* the top and bottom */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
942 | for (i = 0; i < w; i += reverse_char(d, 0, i, set)); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
943 | for (i = 0; i < w; i += reverse_char(d, h-1, i, set)); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
944 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
945 | /* the left and right */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
946 | for (i = 0; i < h; i += reverse_char(d, i, 0, set)); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
947 | for (i = 0; i < h; i += reverse_char(d, i, w-1, set)); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
948 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
949 | gnt_wm_copy_win(win, g_hash_table_lookup(wm->nodes, win)); |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
950 | update_screen(wm); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
951 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
952 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
953 | static gboolean |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
954 | start_move(GntBindable *bindable, GList *null) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
955 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
956 | GntWM *wm = GNT_WM(bindable); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
957 | if (wm->_list.window || wm->menu) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
958 | return TRUE; |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
959 | if (!wm->cws->ordered) |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
960 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
961 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
962 | wm->mode = GNT_KP_MODE_MOVE; |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
963 | window_reverse(GNT_WIDGET(wm->cws->ordered->data), TRUE, wm); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
964 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
965 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
966 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
967 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
968 | static gboolean |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
969 | start_resize(GntBindable *bindable, GList *null) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
970 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
971 | GntWM *wm = GNT_WM(bindable); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
972 | if (wm->_list.window || wm->menu) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
973 | return TRUE; |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
974 | if (!wm->cws->ordered) |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
975 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
976 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
977 | wm->mode = GNT_KP_MODE_RESIZE; |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
978 | window_reverse(GNT_WIDGET(wm->cws->ordered->data), TRUE, wm); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
979 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
980 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
981 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
982 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
983 | static gboolean |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
984 | wm_quit(GntBindable *bindable, GList *list) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
985 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
986 | GntWM *wm = GNT_WM(bindable); |
|
15129
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
987 | if (write_timeout) |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
988 | write_already(wm); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
989 | g_main_loop_quit(wm->loop); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
990 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
991 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
992 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
993 | static gboolean |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
994 | return_true(GntWM *wm, GntWidget *w, int *a, int *b) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
995 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
996 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
997 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
998 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
999 | static gboolean |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1000 | refresh_screen(GntBindable *bindable, GList *null) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1001 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1002 | GntWM *wm = GNT_WM(bindable); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1003 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1004 | endwin(); |
|
21471
4dcb5c206238
Fix size calculation when shadow is enabled.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21453
diff
changeset
|
1005 | refresh(); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1006 | |
|
21471
4dcb5c206238
Fix size calculation when shadow is enabled.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21453
diff
changeset
|
1007 | g_hash_table_foreach(wm->nodes, (GHFunc)refresh_node, GINT_TO_POINTER(TRUE)); |
|
18420
fd3ec9457e27
Add a callback that gets triggered by SIGWINCH.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18308
diff
changeset
|
1008 | g_signal_emit(wm, signals[SIG_TERMINAL_REFRESH], 0); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1009 | update_screen(wm); |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1010 | gnt_ws_draw_taskbar(wm->cws, TRUE); |
|
18139
6f8ce11e928a
This got lost from a merge I think. This refixes #532.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18137
diff
changeset
|
1011 | curs_set(0); /* endwin resets the cursor to normal */ |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1012 | |
|
18600
4645484d0776
The key has been processed. Return TRUE.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18599
diff
changeset
|
1013 | return TRUE; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1014 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1015 | |
|
16584
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1016 | static gboolean |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1017 | toggle_clipboard(GntBindable *bindable, GList *n) |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1018 | { |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1019 | static GntWidget *clip; |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1020 | gchar *text; |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1021 | int maxx, maxy; |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1022 | if (clip) { |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1023 | gnt_widget_destroy(clip); |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1024 | clip = NULL; |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1025 | return TRUE; |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1026 | } |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1027 | getmaxyx(stdscr, maxy, maxx); |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1028 | text = gnt_get_clipboard_string(); |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1029 | clip = gnt_hwindow_new(FALSE); |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1030 | GNT_WIDGET_SET_FLAGS(clip, GNT_WIDGET_TRANSIENT); |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1031 | GNT_WIDGET_SET_FLAGS(clip, GNT_WIDGET_NO_BORDER); |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1032 | gnt_box_set_pad(GNT_BOX(clip), 0); |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1033 | gnt_box_add_widget(GNT_BOX(clip), gnt_label_new(" ")); |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1034 | gnt_box_add_widget(GNT_BOX(clip), gnt_label_new(text)); |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1035 | gnt_box_add_widget(GNT_BOX(clip), gnt_label_new(" ")); |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1036 | gnt_widget_set_position(clip, 0, 0); |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1037 | gnt_widget_draw(clip); |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1038 | g_free(text); |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1039 | return TRUE; |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1040 | } |
|
4da6c97082c9
Move the toggle-clipboard operation to the default wm.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16356
diff
changeset
|
1041 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1042 | static void remove_tag(gpointer wid, gpointer wim) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1043 | { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1044 | GntWM *wm = GNT_WM(wim); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1045 | GntWidget *w = GNT_WIDGET(wid); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1046 | wm->tagged = g_list_remove(wm->tagged, w); |
|
21240
b78eaddaae02
Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21204
diff
changeset
|
1047 | mvwhline(w->window, 0, 1, ACS_HLINE | gnt_color_pair(GNT_COLOR_NORMAL), 3); |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1048 | gnt_widget_draw(w); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1049 | } |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1050 | |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1051 | static gboolean |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1052 | tag_widget(GntBindable *b, GList *params) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1053 | { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1054 | GntWM *wm = GNT_WM(b); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1055 | GntWidget *widget; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1056 | |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1057 | if (!wm->cws->ordered) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1058 | return FALSE; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1059 | widget = wm->cws->ordered->data; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1060 | |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1061 | if (g_list_find(wm->tagged, widget)) { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1062 | remove_tag(widget, wm); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1063 | return TRUE; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1064 | } |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1065 | |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1066 | wm->tagged = g_list_prepend(wm->tagged, widget); |
|
21240
b78eaddaae02
Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21204
diff
changeset
|
1067 | wbkgdset(widget->window, ' ' | gnt_color_pair(GNT_COLOR_HIGHLIGHT)); |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1068 | mvwprintw(widget->window, 0, 1, "[T]"); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1069 | gnt_widget_draw(widget); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1070 | return TRUE; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1071 | } |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1072 | |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1073 | static void |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1074 | widget_move_ws(gpointer wid, gpointer w) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1075 | { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1076 | GntWM *wm = GNT_WM(w); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1077 | gnt_wm_widget_move_workspace(wm, wm->cws, GNT_WIDGET(wid)); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1078 | } |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1079 | |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1080 | static gboolean |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1081 | place_tagged(GntBindable *b, GList *params) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1082 | { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1083 | GntWM *wm = GNT_WM(b); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1084 | g_list_foreach(wm->tagged, widget_move_ws, wm); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1085 | g_list_foreach(wm->tagged, remove_tag, wm); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1086 | g_list_free(wm->tagged); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1087 | wm->tagged = NULL; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1088 | return TRUE; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1089 | } |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1090 | |
|
16523
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1091 | static gboolean |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1092 | workspace_list(GntBindable *b, GList *params) |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1093 | { |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1094 | GntWM *wm = GNT_WM(b); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1095 | |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1096 | if (wm->_list.window || wm->menu) |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1097 | return TRUE; |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1098 | |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1099 | list_of_windows(wm, TRUE); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1100 | |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1101 | return TRUE; |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1102 | } |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1103 | |
|
18137
a8c54ed05eee
F9 to create a new workspace.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18133
diff
changeset
|
1104 | static gboolean |
|
a8c54ed05eee
F9 to create a new workspace.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18133
diff
changeset
|
1105 | workspace_new(GntBindable *bindable, GList *null) |
|
a8c54ed05eee
F9 to create a new workspace.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18133
diff
changeset
|
1106 | { |
|
a8c54ed05eee
F9 to create a new workspace.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18133
diff
changeset
|
1107 | GntWM *wm = GNT_WM(bindable); |
|
a8c54ed05eee
F9 to create a new workspace.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18133
diff
changeset
|
1108 | GntWS *ws = gnt_ws_new(NULL); |
|
a8c54ed05eee
F9 to create a new workspace.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18133
diff
changeset
|
1109 | gnt_wm_add_workspace(wm, ws); |
|
a8c54ed05eee
F9 to create a new workspace.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18133
diff
changeset
|
1110 | gnt_wm_switch_workspace(wm, g_list_index(wm->workspaces, ws)); |
|
a8c54ed05eee
F9 to create a new workspace.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18133
diff
changeset
|
1111 | return TRUE; |
|
a8c54ed05eee
F9 to create a new workspace.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18133
diff
changeset
|
1112 | } |
|
a8c54ed05eee
F9 to create a new workspace.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18133
diff
changeset
|
1113 | |
|
18286
c67fe80f0325
propagate from branch 'im.pidgin.pidgin' (head 1b2a6ef120661e9253743c44546887c5d980aa21)
Eric Polino <aluink@pidgin.im>
diff
changeset
|
1114 | static gboolean |
|
17590
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
1115 | ignore_keys_start(GntBindable *bindable, GList *n) |
|
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
1116 | { |
|
17196
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
1117 | GntWM *wm = GNT_WM(bindable); |
|
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
1118 | |
|
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
1119 | if(!wm->menu && !wm->_list.window && wm->mode == GNT_KP_MODE_NORMAL){ |
|
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
1120 | ignore_keys = TRUE; |
|
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
1121 | return TRUE; |
|
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
1122 | } |
|
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
1123 | return FALSE; |
|
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
1124 | } |
|
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
1125 | |
|
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
1126 | static gboolean |
|
17590
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
1127 | ignore_keys_end(GntBindable *bindable, GList *n) |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1128 | { |
|
17590
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
1129 | return ignore_keys ? !(ignore_keys = FALSE) : FALSE; |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1130 | } |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1131 | |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1132 | static gboolean |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1133 | help_for_bindable(GntWM *wm, GntBindable *bindable) |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1134 | { |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1135 | gboolean ret = TRUE; |
|
17590
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
1136 | GntBindableClass *klass = GNT_BINDABLE_GET_CLASS(bindable); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1137 | |
|
17590
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
1138 | if (klass->help_window) { |
|
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
1139 | gnt_wm_raise_window(wm, GNT_WIDGET(klass->help_window)); |
|
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
1140 | } else { |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1141 | ret = gnt_bindable_build_help_window(bindable); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1142 | } |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1143 | return ret; |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1144 | } |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1145 | |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1146 | static gboolean |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1147 | help_for_wm(GntBindable *bindable, GList *null) |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1148 | { |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1149 | return help_for_bindable(GNT_WM(bindable),bindable); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1150 | } |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1151 | |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1152 | static gboolean |
|
17591
9496232d1cf0
Added the ability to change the key bindings on the active window.
Eric Polino <aluink@pidgin.im>
parents:
17590
diff
changeset
|
1153 | help_for_window(GntBindable *bindable, GList *null) |
|
9496232d1cf0
Added the ability to change the key bindings on the active window.
Eric Polino <aluink@pidgin.im>
parents:
17590
diff
changeset
|
1154 | { |
|
9496232d1cf0
Added the ability to change the key bindings on the active window.
Eric Polino <aluink@pidgin.im>
parents:
17590
diff
changeset
|
1155 | GntWM *wm = GNT_WM(bindable); |
|
18690
85033822cf93
merge of '63410823a172d188421e84f73dfbaed4a20be58a'
Eric Polino <aluink@pidgin.im>
parents:
18688
diff
changeset
|
1156 | GntWidget *widget; |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19307
diff
changeset
|
1157 | |
|
18690
85033822cf93
merge of '63410823a172d188421e84f73dfbaed4a20be58a'
Eric Polino <aluink@pidgin.im>
parents:
18688
diff
changeset
|
1158 | if(!wm->cws->ordered) |
|
85033822cf93
merge of '63410823a172d188421e84f73dfbaed4a20be58a'
Eric Polino <aluink@pidgin.im>
parents:
18688
diff
changeset
|
1159 | return FALSE; |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19307
diff
changeset
|
1160 | |
|
18690
85033822cf93
merge of '63410823a172d188421e84f73dfbaed4a20be58a'
Eric Polino <aluink@pidgin.im>
parents:
18688
diff
changeset
|
1161 | widget = wm->cws->ordered->data; |
|
17591
9496232d1cf0
Added the ability to change the key bindings on the active window.
Eric Polino <aluink@pidgin.im>
parents:
17590
diff
changeset
|
1162 | |
|
9496232d1cf0
Added the ability to change the key bindings on the active window.
Eric Polino <aluink@pidgin.im>
parents:
17590
diff
changeset
|
1163 | return help_for_bindable(wm,GNT_BINDABLE(widget)); |
|
9496232d1cf0
Added the ability to change the key bindings on the active window.
Eric Polino <aluink@pidgin.im>
parents:
17590
diff
changeset
|
1164 | } |
|
9496232d1cf0
Added the ability to change the key bindings on the active window.
Eric Polino <aluink@pidgin.im>
parents:
17590
diff
changeset
|
1165 | |
|
9496232d1cf0
Added the ability to change the key bindings on the active window.
Eric Polino <aluink@pidgin.im>
parents:
17590
diff
changeset
|
1166 | static gboolean |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1167 | help_for_widget(GntBindable *bindable, GList *null) |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1168 | { |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1169 | GntWM *wm = GNT_WM(bindable); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1170 | GntWidget *widget; |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1171 | |
|
18154
9f5fc643a2ad
Fixed a few problems that were created by the merge from the propagate.
Eric Polino <aluink@pidgin.im>
parents:
18153
diff
changeset
|
1172 | if (!wm->cws->ordered) |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1173 | return TRUE; |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1174 | |
|
18154
9f5fc643a2ad
Fixed a few problems that were created by the merge from the propagate.
Eric Polino <aluink@pidgin.im>
parents:
18153
diff
changeset
|
1175 | widget = wm->cws->ordered->data; |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1176 | if (!GNT_IS_BOX(widget)) |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1177 | return TRUE; |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1178 | |
|
17590
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
1179 | return help_for_bindable(wm, GNT_BINDABLE(GNT_BOX(widget)->active)); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1180 | } |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17588
diff
changeset
|
1181 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1182 | static void |
|
19180
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1183 | accumulate_windows(gpointer window, gpointer node, gpointer p) |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1184 | { |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1185 | GList *list = *(GList**)p; |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1186 | list = g_list_prepend(list, window); |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1187 | *(GList**)p = list; |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1188 | } |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1189 | |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1190 | static void |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1191 | gnt_wm_destroy(GObject *obj) |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1192 | { |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1193 | GntWM *wm = GNT_WM(obj); |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1194 | GList *list = NULL; |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1195 | g_hash_table_foreach(wm->nodes, accumulate_windows, &list); |
|
19197
172671e74863
Add two more missing characters for the HTML dump.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19180
diff
changeset
|
1196 | g_list_foreach(list, (GFunc)gnt_widget_destroy, NULL); |
|
19180
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1197 | g_list_free(list); |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1198 | g_hash_table_destroy(wm->nodes); |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1199 | wm->nodes = NULL; |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1200 | |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1201 | while (wm->workspaces) { |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1202 | g_object_unref(wm->workspaces->data); |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1203 | wm->workspaces = g_list_delete_link(wm->workspaces, wm->workspaces); |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1204 | } |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1205 | } |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1206 | |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1207 | static void |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1208 | gnt_wm_class_init(GntWMClass *klass) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1209 | { |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1210 | int i; |
|
19180
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1211 | GObjectClass *gclass = G_OBJECT_CLASS(klass); |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1212 | |
|
a814189b2782
This fixes a few weird crashes in pygnt.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18809
diff
changeset
|
1213 | gclass->dispose = gnt_wm_destroy; |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1214 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1215 | klass->new_window = gnt_wm_new_window_real; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1216 | klass->decorate_window = NULL; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1217 | klass->close_window = NULL; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1218 | klass->window_resize_confirm = return_true; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1219 | klass->window_resized = gnt_wm_win_resized; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1220 | klass->window_move_confirm = return_true; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1221 | klass->window_moved = gnt_wm_win_moved; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1222 | klass->window_update = NULL; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1223 | klass->key_pressed = NULL; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1224 | klass->mouse_clicked = NULL; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1225 | klass->give_focus = gnt_wm_give_focus; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1226 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1227 | signals[SIG_NEW_WIN] = |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1228 | g_signal_new("new_win", |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1229 | G_TYPE_FROM_CLASS(klass), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1230 | G_SIGNAL_RUN_LAST, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1231 | G_STRUCT_OFFSET(GntWMClass, new_window), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1232 | NULL, NULL, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1233 | g_cclosure_marshal_VOID__POINTER, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1234 | G_TYPE_NONE, 1, G_TYPE_POINTER); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1235 | signals[SIG_DECORATE_WIN] = |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1236 | g_signal_new("decorate_win", |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1237 | G_TYPE_FROM_CLASS(klass), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1238 | G_SIGNAL_RUN_LAST, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1239 | G_STRUCT_OFFSET(GntWMClass, decorate_window), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1240 | NULL, NULL, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1241 | g_cclosure_marshal_VOID__POINTER, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1242 | G_TYPE_NONE, 1, G_TYPE_POINTER); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1243 | signals[SIG_CLOSE_WIN] = |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1244 | g_signal_new("close_win", |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1245 | G_TYPE_FROM_CLASS(klass), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1246 | G_SIGNAL_RUN_LAST, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1247 | G_STRUCT_OFFSET(GntWMClass, close_window), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1248 | NULL, NULL, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1249 | g_cclosure_marshal_VOID__POINTER, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1250 | G_TYPE_NONE, 1, G_TYPE_POINTER); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1251 | signals[SIG_CONFIRM_RESIZE] = |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1252 | g_signal_new("confirm_resize", |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1253 | G_TYPE_FROM_CLASS(klass), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1254 | G_SIGNAL_RUN_LAST, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1255 | G_STRUCT_OFFSET(GntWMClass, window_resize_confirm), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1256 | gnt_boolean_handled_accumulator, NULL, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1257 | gnt_closure_marshal_BOOLEAN__POINTER_POINTER_POINTER, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1258 | G_TYPE_BOOLEAN, 3, G_TYPE_POINTER, G_TYPE_POINTER, G_TYPE_POINTER); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1259 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1260 | signals[SIG_CONFIRM_MOVE] = |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1261 | g_signal_new("confirm_move", |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1262 | G_TYPE_FROM_CLASS(klass), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1263 | G_SIGNAL_RUN_LAST, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1264 | G_STRUCT_OFFSET(GntWMClass, window_move_confirm), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1265 | gnt_boolean_handled_accumulator, NULL, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1266 | gnt_closure_marshal_BOOLEAN__POINTER_POINTER_POINTER, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1267 | G_TYPE_BOOLEAN, 3, G_TYPE_POINTER, G_TYPE_POINTER, G_TYPE_POINTER); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1268 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1269 | signals[SIG_RESIZED] = |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1270 | g_signal_new("window_resized", |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1271 | G_TYPE_FROM_CLASS(klass), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1272 | G_SIGNAL_RUN_LAST, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1273 | G_STRUCT_OFFSET(GntWMClass, window_resized), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1274 | NULL, NULL, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1275 | g_cclosure_marshal_VOID__POINTER, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1276 | G_TYPE_NONE, 1, G_TYPE_POINTER); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1277 | signals[SIG_MOVED] = |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1278 | g_signal_new("window_moved", |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1279 | G_TYPE_FROM_CLASS(klass), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1280 | G_SIGNAL_RUN_LAST, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1281 | G_STRUCT_OFFSET(GntWMClass, window_moved), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1282 | NULL, NULL, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1283 | g_cclosure_marshal_VOID__POINTER, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1284 | G_TYPE_NONE, 1, G_TYPE_POINTER); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1285 | signals[SIG_UPDATE_WIN] = |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1286 | g_signal_new("window_update", |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1287 | G_TYPE_FROM_CLASS(klass), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1288 | G_SIGNAL_RUN_LAST, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1289 | G_STRUCT_OFFSET(GntWMClass, window_update), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1290 | NULL, NULL, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1291 | g_cclosure_marshal_VOID__POINTER, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1292 | G_TYPE_NONE, 1, G_TYPE_POINTER); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1293 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1294 | signals[SIG_GIVE_FOCUS] = |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1295 | g_signal_new("give_focus", |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1296 | G_TYPE_FROM_CLASS(klass), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1297 | G_SIGNAL_RUN_LAST, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1298 | G_STRUCT_OFFSET(GntWMClass, give_focus), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1299 | NULL, NULL, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1300 | g_cclosure_marshal_VOID__POINTER, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1301 | G_TYPE_NONE, 1, G_TYPE_POINTER); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1302 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1303 | signals[SIG_MOUSE_CLICK] = |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1304 | g_signal_new("mouse_clicked", |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1305 | G_TYPE_FROM_CLASS(klass), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1306 | G_SIGNAL_RUN_LAST, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1307 | G_STRUCT_OFFSET(GntWMClass, mouse_clicked), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1308 | gnt_boolean_handled_accumulator, NULL, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1309 | gnt_closure_marshal_BOOLEAN__INT_INT_INT_POINTER, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1310 | G_TYPE_BOOLEAN, 4, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_POINTER); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1311 | |
|
18420
fd3ec9457e27
Add a callback that gets triggered by SIGWINCH.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18308
diff
changeset
|
1312 | signals[SIG_TERMINAL_REFRESH] = |
|
fd3ec9457e27
Add a callback that gets triggered by SIGWINCH.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18308
diff
changeset
|
1313 | g_signal_new("terminal-refresh", |
|
fd3ec9457e27
Add a callback that gets triggered by SIGWINCH.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18308
diff
changeset
|
1314 | G_TYPE_FROM_CLASS(klass), |
|
fd3ec9457e27
Add a callback that gets triggered by SIGWINCH.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18308
diff
changeset
|
1315 | G_SIGNAL_RUN_LAST, |
|
fd3ec9457e27
Add a callback that gets triggered by SIGWINCH.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18308
diff
changeset
|
1316 | G_STRUCT_OFFSET(GntWMClass, terminal_refresh), |
|
fd3ec9457e27
Add a callback that gets triggered by SIGWINCH.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18308
diff
changeset
|
1317 | NULL, NULL, |
|
fd3ec9457e27
Add a callback that gets triggered by SIGWINCH.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18308
diff
changeset
|
1318 | g_cclosure_marshal_VOID__VOID, |
|
fd3ec9457e27
Add a callback that gets triggered by SIGWINCH.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18308
diff
changeset
|
1319 | G_TYPE_NONE, 0); |
|
fd3ec9457e27
Add a callback that gets triggered by SIGWINCH.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18308
diff
changeset
|
1320 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1321 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "window-next", window_next, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1322 | "\033" "n", NULL); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1323 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "window-prev", window_prev, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1324 | "\033" "p", NULL); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1325 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "window-close", window_close, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1326 | "\033" "c", NULL); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1327 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "window-list", window_list, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1328 | "\033" "w", NULL); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1329 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "dump-screen", dump_screen, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1330 | "\033" "d", NULL); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1331 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "shift-left", shift_left, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1332 | "\033" ",", NULL); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1333 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "shift-right", shift_right, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1334 | "\033" ".", NULL); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1335 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "action-list", list_actions, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1336 | "\033" "a", NULL); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1337 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "start-move", start_move, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1338 | "\033" "m", NULL); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1339 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "start-resize", start_resize, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1340 | "\033" "r", NULL); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1341 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "wm-quit", wm_quit, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1342 | "\033" "q", NULL); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1343 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "refresh-screen", refresh_screen, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1344 | "\033" "l", NULL); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1345 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "switch-window-n", switch_window_n, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1346 | NULL, NULL); |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1347 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "window-scroll-down", window_scroll_down, |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1348 | "\033" GNT_KEY_CTRL_J, NULL); |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1349 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "window-scroll-up", window_scroll_up, |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1350 | "\033" GNT_KEY_CTRL_K, NULL); |
|
16188
2c7ee371f005
alt-/ to get a list of keybindings for the focused widget.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16056
diff
changeset
|
1351 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "help-for-widget", help_for_widget, |
|
2c7ee371f005
alt-/ to get a list of keybindings for the focused widget.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16056
diff
changeset
|
1352 | "\033" "/", NULL); |
|
18137
a8c54ed05eee
F9 to create a new workspace.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18133
diff
changeset
|
1353 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "workspace-new", workspace_new, |
|
a8c54ed05eee
F9 to create a new workspace.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18133
diff
changeset
|
1354 | GNT_KEY_F9, NULL); |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1355 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "workspace-next", workspace_next, |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1356 | "\033" ">", NULL); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1357 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "workspace-prev", workspace_prev, |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1358 | "\033" "<", NULL); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1359 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "window-tag", tag_widget, |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1360 | "\033" "t", NULL); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1361 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "place-tagged", place_tagged, |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1362 | "\033" "T", NULL); |
|
16523
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1363 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "workspace-list", workspace_list, |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1364 | "\033" "s", NULL); |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19307
diff
changeset
|
1365 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "toggle-clipboard", toggle_clipboard, |
|
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19307
diff
changeset
|
1366 | "\033" "C", NULL); |
|
17582
3d9f7bafa2a0
Alt-\ allows to rebind keys to the wm
Eric Polino <aluink@pidgin.im>
parents:
17581
diff
changeset
|
1367 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "help-for-wm", help_for_wm, |
|
3d9f7bafa2a0
Alt-\ allows to rebind keys to the wm
Eric Polino <aluink@pidgin.im>
parents:
17581
diff
changeset
|
1368 | "\033" "\\", NULL); |
|
17591
9496232d1cf0
Added the ability to change the key bindings on the active window.
Eric Polino <aluink@pidgin.im>
parents:
17590
diff
changeset
|
1369 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "help-for-window", help_for_window, |
|
9496232d1cf0
Added the ability to change the key bindings on the active window.
Eric Polino <aluink@pidgin.im>
parents:
17590
diff
changeset
|
1370 | "\033" "|", NULL); |
|
17196
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
1371 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "ignore-keys-start", ignore_keys_start, |
|
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
1372 | GNT_KEY_CTRL_G, NULL); |
|
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
1373 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "ignore-keys-end", ignore_keys_end, |
|
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
1374 | "\033" GNT_KEY_CTRL_G, NULL); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1375 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1376 | gnt_style_read_actions(G_OBJECT_CLASS_TYPE(klass), GNT_BINDABLE_CLASS(klass)); |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1377 | |
|
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1378 | /* Make sure Alt+x are detected properly. */ |
|
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1379 | for (i = '0'; i <= '9'; i++) { |
|
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1380 | char str[] = "\033X"; |
|
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1381 | str[1] = i; |
|
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1382 | gnt_keys_add_combination(str); |
|
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1383 | } |
|
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1384 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1385 | GNTDEBUG; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1386 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1387 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1388 | /****************************************************************************** |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1389 | * GntWM API |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1390 | *****************************************************************************/ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1391 | GType |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1392 | gnt_wm_get_gtype(void) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1393 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1394 | static GType type = 0; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1395 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1396 | if(type == 0) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1397 | static const GTypeInfo info = { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1398 | sizeof(GntWMClass), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1399 | NULL, /* base_init */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1400 | NULL, /* base_finalize */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1401 | (GClassInitFunc)gnt_wm_class_init, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1402 | NULL, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1403 | NULL, /* class_data */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1404 | sizeof(GntWM), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1405 | 0, /* n_preallocs */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1406 | gnt_wm_init, /* instance_init */ |
|
15874
46df7421a1b5
Enable DEBUG_CFLAGS in libgnt and fix up a number of compile warnings and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15863
diff
changeset
|
1407 | NULL /* value_table */ |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1408 | }; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1409 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1410 | type = g_type_register_static(GNT_TYPE_BINDABLE, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1411 | "GntWM", |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1412 | &info, 0); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1413 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1414 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1415 | return type; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1416 | } |
|
18137
a8c54ed05eee
F9 to create a new workspace.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18133
diff
changeset
|
1417 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1418 | void |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1419 | gnt_wm_add_workspace(GntWM *wm, GntWS *ws) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1420 | { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1421 | wm->workspaces = g_list_append(wm->workspaces, ws); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1422 | } |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1423 | |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1424 | gboolean |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1425 | gnt_wm_switch_workspace(GntWM *wm, gint n) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1426 | { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1427 | GntWS *s = g_list_nth_data(wm->workspaces, n); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1428 | if (!s) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1429 | return FALSE; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1430 | |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1431 | if (wm->_list.window) { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1432 | gnt_widget_destroy(wm->_list.window); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1433 | } |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1434 | gnt_ws_hide(wm->cws, wm->nodes); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1435 | wm->cws = s; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1436 | gnt_ws_show(wm->cws, wm->nodes); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1437 | |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1438 | gnt_ws_draw_taskbar(wm->cws, TRUE); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1439 | update_screen(wm); |
|
16524
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
1440 | if (wm->cws->ordered) { |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
1441 | gnt_wm_raise_window(wm, wm->cws->ordered->data); |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
1442 | } |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
1443 | |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
1444 | if (act && g_list_find(act, wm->cws)) { |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
1445 | act = g_list_remove(act, wm->cws); |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
1446 | update_act_msg(); |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
1447 | } |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1448 | return TRUE; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1449 | } |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1450 | |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1451 | gboolean |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1452 | gnt_wm_switch_workspace_prev(GntWM *wm) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1453 | { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1454 | int n = g_list_index(wm->workspaces, wm->cws); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1455 | return gnt_wm_switch_workspace(wm, --n); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1456 | } |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1457 | |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1458 | gboolean |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1459 | gnt_wm_switch_workspace_next(GntWM *wm) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1460 | { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1461 | int n = g_list_index(wm->workspaces, wm->cws); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1462 | return gnt_wm_switch_workspace(wm, ++n); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1463 | } |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1464 | |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1465 | static gboolean |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1466 | workspace_next(GntBindable *wm, GList *n) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1467 | { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1468 | return gnt_wm_switch_workspace_next(GNT_WM(wm)); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1469 | } |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1470 | |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1471 | static gboolean |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1472 | workspace_prev(GntBindable *wm, GList *n) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1473 | { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1474 | return gnt_wm_switch_workspace_prev(GNT_WM(wm)); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1475 | } |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1476 | |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1477 | void |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1478 | gnt_wm_widget_move_workspace(GntWM *wm, GntWS *neww, GntWidget *widget) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1479 | { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1480 | GntWS *oldw = gnt_wm_widget_find_workspace(wm, widget); |
|
16523
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1481 | GntNode *node; |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1482 | if (!oldw || oldw == neww) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1483 | return; |
|
16523
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1484 | node = g_hash_table_lookup(wm->nodes, widget); |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1485 | if (node && node->ws == neww) |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1486 | return; |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1487 | |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1488 | if (node) |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1489 | node->ws = neww; |
|
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1490 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1491 | gnt_ws_remove_widget(oldw, widget); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1492 | gnt_ws_add_widget(neww, widget); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1493 | if (neww == wm->cws) { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1494 | gnt_ws_widget_show(widget, wm->nodes); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1495 | } else { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1496 | gnt_ws_widget_hide(widget, wm->nodes); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1497 | } |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1498 | } |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1499 | |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1500 | static gint widget_in_workspace(gconstpointer workspace, gconstpointer wid) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1501 | { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1502 | GntWS *s = (GntWS *)workspace; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1503 | if (s->list && g_list_find(s->list, wid)) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1504 | return 0; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1505 | return 1; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1506 | } |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1507 | |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1508 | GntWS *gnt_wm_widget_find_workspace(GntWM *wm, GntWidget *widget) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1509 | { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1510 | GList *l = g_list_find_custom(wm->workspaces, widget, widget_in_workspace); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1511 | if (l) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1512 | return l->data; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1513 | return NULL; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1514 | } |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1515 | |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1516 | static void free_workspaces(gpointer data, gpointer n) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1517 | { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1518 | GntWS *s = data; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1519 | g_free(s->name); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1520 | } |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1521 | |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1522 | void gnt_wm_set_workspaces(GntWM *wm, GList *workspaces) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1523 | { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1524 | g_list_foreach(wm->workspaces, free_workspaces, NULL); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1525 | wm->workspaces = workspaces; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1526 | gnt_wm_switch_workspace(wm, 0); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1527 | } |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1528 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1529 | static void |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1530 | update_window_in_list(GntWM *wm, GntWidget *wid) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1531 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1532 | GntTextFormatFlags flag = 0; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1533 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1534 | if (wm->windows == NULL) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1535 | return; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1536 | |
|
16523
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1537 | if (wm->cws->ordered && wid == wm->cws->ordered->data) |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1538 | flag |= GNT_TEXT_FLAG_DIM; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1539 | else if (GNT_WIDGET_IS_FLAG_SET(wid, GNT_WIDGET_URGENT)) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1540 | flag |= GNT_TEXT_FLAG_BOLD; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1541 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1542 | gnt_tree_set_row_flags(GNT_TREE(wm->windows->tree), wid, flag); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1543 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1544 | |
|
16525
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1545 | static gboolean |
|
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1546 | match_title(gpointer title, gpointer n, gpointer wid_title) |
|
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1547 | { |
|
18308
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1548 | /* XXX: do any regex magic here. */ |
|
16525
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1549 | if (g_strrstr((gchar *)wid_title, (gchar *)title)) |
|
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1550 | return TRUE; |
|
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1551 | return FALSE; |
|
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1552 | } |
|
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1553 | |
|
18279
d6e07df7a58e
g_hash_table_find is glib 2.4
Richard Nelson <wabz@pidgin.im>
parents:
18170
diff
changeset
|
1554 | #if !GLIB_CHECK_VERSION(2,4,0) |
|
18308
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1555 | struct |
|
18279
d6e07df7a58e
g_hash_table_find is glib 2.4
Richard Nelson <wabz@pidgin.im>
parents:
18170
diff
changeset
|
1556 | { |
|
18308
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1557 | gpointer data; |
|
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1558 | gpointer value; |
|
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1559 | } table_find_data; |
|
18279
d6e07df7a58e
g_hash_table_find is glib 2.4
Richard Nelson <wabz@pidgin.im>
parents:
18170
diff
changeset
|
1560 | |
|
18308
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1561 | static void |
|
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1562 | table_find_helper(gpointer key, gpointer value, gpointer data) |
|
18279
d6e07df7a58e
g_hash_table_find is glib 2.4
Richard Nelson <wabz@pidgin.im>
parents:
18170
diff
changeset
|
1563 | { |
|
18308
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1564 | GHRFunc func = data; |
|
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1565 | if (func(key, value, table_find_data.data)) |
|
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1566 | table_find_data.value = value; |
|
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1567 | } |
|
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1568 | |
|
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1569 | static gpointer |
|
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1570 | g_hash_table_find(GHashTable * table, GHRFunc func, gpointer data) |
|
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1571 | { |
|
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1572 | table_find_data.data = data; |
|
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1573 | table_find_data.value = NULL; |
|
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1574 | g_hash_table_foreach(table, table_find_helper, func); |
|
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1575 | return table_find_data.value; |
|
18279
d6e07df7a58e
g_hash_table_find is glib 2.4
Richard Nelson <wabz@pidgin.im>
parents:
18170
diff
changeset
|
1576 | } |
|
d6e07df7a58e
g_hash_table_find is glib 2.4
Richard Nelson <wabz@pidgin.im>
parents:
18170
diff
changeset
|
1577 | #endif |
|
d6e07df7a58e
g_hash_table_find is glib 2.4
Richard Nelson <wabz@pidgin.im>
parents:
18170
diff
changeset
|
1578 | |
|
16525
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1579 | static GntWS * |
|
18308
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1580 | new_widget_find_workspace(GntWM *wm, GntWidget *widget) |
|
16525
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1581 | { |
|
18308
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1582 | GntWS *ret = NULL; |
|
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1583 | const gchar *name, *title; |
|
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1584 | title = GNT_BOX(widget)->title; |
|
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1585 | if (title) |
|
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1586 | ret = g_hash_table_find(wm->title_places, match_title, (gpointer)title); |
|
16525
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1587 | if (ret) |
|
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1588 | return ret; |
|
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1589 | name = gnt_widget_get_name(widget); |
|
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1590 | if (name) |
|
18308
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1591 | ret = g_hash_table_find(wm->name_places, match_title, (gpointer)name); |
|
16525
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1592 | return ret ? ret : wm->cws; |
|
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1593 | } |
|
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1594 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1595 | static void |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1596 | gnt_wm_new_window_real(GntWM *wm, GntWidget *widget) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1597 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1598 | GntNode *node; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1599 | gboolean transient = FALSE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1600 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1601 | if (widget->window == NULL) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1602 | return; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1603 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1604 | node = g_new0(GntNode, 1); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1605 | node->me = widget; |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1606 | node->scroll = 0; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1607 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1608 | g_hash_table_replace(wm->nodes, widget, node); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1609 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1610 | refresh_node(widget, node, NULL); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1611 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1612 | transient = !!GNT_WIDGET_IS_FLAG_SET(node->me, GNT_WIDGET_TRANSIENT); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1613 | |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1614 | #if 1 |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1615 | { |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1616 | int x, y, w, h, maxx, maxy; |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1617 | gboolean shadow = TRUE; |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1618 | |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1619 | if (!gnt_widget_has_shadow(widget)) |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1620 | shadow = FALSE; |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1621 | x = widget->priv.x; |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1622 | y = widget->priv.y; |
|
21471
4dcb5c206238
Fix size calculation when shadow is enabled.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21453
diff
changeset
|
1623 | w = widget->priv.width + shadow; |
|
4dcb5c206238
Fix size calculation when shadow is enabled.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21453
diff
changeset
|
1624 | h = widget->priv.height + shadow; |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1625 | |
|
21471
4dcb5c206238
Fix size calculation when shadow is enabled.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21453
diff
changeset
|
1626 | maxx = getmaxx(stdscr); |
|
4dcb5c206238
Fix size calculation when shadow is enabled.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21453
diff
changeset
|
1627 | maxy = getmaxy(stdscr) - 1; /* room for the taskbar */ |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1628 | |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1629 | x = MAX(0, x); |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1630 | y = MAX(0, y); |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1631 | if (x + w >= maxx) |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1632 | x = MAX(0, maxx - w); |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1633 | if (y + h >= maxy) |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1634 | y = MAX(0, maxy - h); |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1635 | |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1636 | w = MIN(w, maxx); |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1637 | h = MIN(h, maxy); |
|
21471
4dcb5c206238
Fix size calculation when shadow is enabled.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21453
diff
changeset
|
1638 | node->window = newwin(h, w, y, x); |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1639 | gnt_wm_copy_win(widget, node); |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1640 | } |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1641 | #endif |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1642 | |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1643 | node->panel = new_panel(node->window); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1644 | set_panel_userptr(node->panel, node); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1645 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1646 | if (!transient) { |
|
16525
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1647 | GntWS *ws = wm->cws; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1648 | if (node->me != wm->_list.window) { |
|
16525
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1649 | if (GNT_IS_BOX(widget)) { |
|
18308
3424730fd9e5
Plucked revision from finchfeat to allow partial matching for window-titles
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18279
diff
changeset
|
1650 | ws = new_widget_find_workspace(wm, widget); |
|
16525
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1651 | } |
|
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1652 | node->ws = ws; |
|
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1653 | ws->list = g_list_append(ws->list, widget); |
|
18596
02e5ec52243c
Some more focus fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18567
diff
changeset
|
1654 | ws->ordered = g_list_append(ws->ordered, widget); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1655 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1656 | |
|
18567
8dd8eae7a1aa
Fix some focus issues.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18420
diff
changeset
|
1657 | if (wm->event_stack || node->me == wm->_list.window || |
|
18596
02e5ec52243c
Some more focus fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18567
diff
changeset
|
1658 | node->me == ws->ordered->data) { |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1659 | gnt_wm_raise_window(wm, node->me); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1660 | } else { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1661 | bottom_panel(node->panel); /* New windows should not grab focus */ |
|
18170
477cfc0d7254
Notify a window on startup if it didn't get the focus.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18139
diff
changeset
|
1662 | gnt_widget_set_focus(node->me, FALSE); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1663 | gnt_widget_set_urgent(node->me); |
|
16525
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1664 | if (wm->cws != ws) |
|
6e207d99ffd9
New windows can be placed on specific workspaces. They can be specified by the window name (e.g. conversation-window), or a substring in the window title. Title takes precedence.
Richard Nelson <wabz@pidgin.im>
parents:
16524
diff
changeset
|
1665 | gnt_ws_widget_hide(widget, wm->nodes); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1666 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1667 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1668 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1669 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1670 | void gnt_wm_new_window(GntWM *wm, GntWidget *widget) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1671 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1672 | while (widget->parent) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1673 | widget = widget->parent; |
|
20293
81d324f460bd
applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
20220
diff
changeset
|
1674 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1675 | if (GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_INVISIBLE) || |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1676 | g_hash_table_lookup(wm->nodes, widget)) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1677 | update_screen(wm); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1678 | return; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1679 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1680 | |
|
15129
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1681 | if (GNT_IS_BOX(widget)) { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1682 | const char *title = GNT_BOX(widget)->title; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1683 | GntPosition *p = NULL; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1684 | if (title && (p = g_hash_table_lookup(wm->positions, title)) != NULL) { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1685 | sanitize_position(widget, &p->x, &p->y); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1686 | gnt_widget_set_position(widget, p->x, p->y); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1687 | mvwin(widget->window, p->y, p->x); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1688 | } |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1689 | } |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1690 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1691 | g_signal_emit(wm, signals[SIG_NEW_WIN], 0, widget); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1692 | g_signal_emit(wm, signals[SIG_DECORATE_WIN], 0, widget); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1693 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1694 | if (wm->windows && !GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_TRANSIENT)) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1695 | if ((GNT_IS_BOX(widget) && GNT_BOX(widget)->title) && wm->_list.window != widget |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1696 | && GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_CAN_TAKE_FOCUS)) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1697 | gnt_tree_add_row_last(GNT_TREE(wm->windows->tree), widget, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1698 | gnt_tree_create_row(GNT_TREE(wm->windows->tree), GNT_BOX(widget)->title), |
|
16523
d774ca89d340
Alt+s to see the list of workspaces and windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16519
diff
changeset
|
1699 | g_object_get_data(G_OBJECT(wm->windows->tree), "workspace") ? wm->cws : NULL); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1700 | update_window_in_list(wm, widget); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1701 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1702 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1703 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1704 | update_screen(wm); |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1705 | gnt_ws_draw_taskbar(wm->cws, FALSE); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1706 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1707 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1708 | void gnt_wm_window_decorate(GntWM *wm, GntWidget *widget) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1709 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1710 | g_signal_emit(wm, signals[SIG_DECORATE_WIN], 0, widget); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1711 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1712 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1713 | void gnt_wm_window_close(GntWM *wm, GntWidget *widget) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1714 | { |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1715 | GntWS *s; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1716 | int pos; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1717 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1718 | s = gnt_wm_widget_find_workspace(wm, widget); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1719 | |
|
20220
6d7683248222
applied changes from 2495a1b6a3619d8188151eaf2822ce2ecd435dbf
Luke Schierer <lschiere@pidgin.im>
parents:
20180
diff
changeset
|
1720 | if (g_hash_table_lookup(wm->nodes, widget) == NULL) |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1721 | return; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1722 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1723 | g_signal_emit(wm, signals[SIG_CLOSE_WIN], 0, widget); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1724 | g_hash_table_remove(wm->nodes, widget); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1725 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1726 | if (wm->windows) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1727 | gnt_tree_remove(GNT_TREE(wm->windows->tree), widget); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1728 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1729 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1730 | if (s) { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1731 | pos = g_list_index(s->list, widget); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1732 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1733 | if (pos != -1) { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1734 | s->list = g_list_remove(s->list, widget); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1735 | s->ordered = g_list_remove(s->ordered, widget); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1736 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1737 | if (s->ordered && wm->cws == s) |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1738 | gnt_wm_raise_window(wm, s->ordered->data); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1739 | } |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1740 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1741 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1742 | update_screen(wm); |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1743 | gnt_ws_draw_taskbar(wm->cws, FALSE); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1744 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1745 | |
|
15802
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
1746 | time_t gnt_wm_get_idle_time() |
|
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
1747 | { |
|
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
1748 | return time(NULL) - last_active_time; |
|
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
1749 | } |
|
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
1750 | |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1751 | gboolean gnt_wm_process_input(GntWM *wm, const char *keys) |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1752 | { |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1753 | gboolean ret = FALSE; |
|
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1754 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1755 | keys = gnt_bindable_remap_keys(GNT_BINDABLE(wm), keys); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1756 | |
|
15802
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
1757 | idle_update = TRUE; |
|
17196
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
1758 | if(ignore_keys){ |
|
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
1759 | if(keys && !strcmp(keys, "\033" GNT_KEY_CTRL_G)){ |
|
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
1760 | if(gnt_bindable_perform_action_key(GNT_BINDABLE(wm), keys)){ |
|
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
1761 | return TRUE; |
|
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
1762 | } |
|
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
1763 | } |
|
18153
cfde4575d02b
propagate from branch 'im.pidgin.pidgin.2.1.0' (head a0178de25d1892b2f929c84c59e8ba429de439d7)
Eric Polino <aluink@pidgin.im>
diff
changeset
|
1764 | return wm->cws->ordered ? gnt_widget_key_pressed(GNT_WIDGET(wm->cws->ordered->data), keys) : FALSE; |
|
17196
2c51c9fd4ccc
1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init
Eric Polino <aluink@pidgin.im>
parents:
17181
diff
changeset
|
1765 | } |
|
15802
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
1766 | |
|
16188
2c7ee371f005
alt-/ to get a list of keybindings for the focused widget.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16056
diff
changeset
|
1767 | if (gnt_bindable_perform_action_key(GNT_BINDABLE(wm), keys)) { |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1768 | return TRUE; |
|
16188
2c7ee371f005
alt-/ to get a list of keybindings for the focused widget.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16056
diff
changeset
|
1769 | } |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1770 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1771 | /* Do some manual checking */ |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1772 | if (wm->cws->ordered && wm->mode != GNT_KP_MODE_NORMAL) { |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1773 | int xmin = 0, ymin = 0, xmax = getmaxx(stdscr), ymax = getmaxy(stdscr) - 1; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1774 | int x, y, w, h; |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1775 | GntWidget *widget = GNT_WIDGET(wm->cws->ordered->data); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1776 | int ox, oy, ow, oh; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1777 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1778 | gnt_widget_get_position(widget, &x, &y); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1779 | gnt_widget_get_size(widget, &w, &h); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1780 | ox = x; oy = y; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1781 | ow = w; oh = h; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1782 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1783 | if (wm->mode == GNT_KP_MODE_MOVE) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1784 | if (strcmp(keys, GNT_KEY_LEFT) == 0) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1785 | if (x > xmin) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1786 | x--; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1787 | } else if (strcmp(keys, GNT_KEY_RIGHT) == 0) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1788 | if (x + w < xmax) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1789 | x++; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1790 | } else if (strcmp(keys, GNT_KEY_UP) == 0) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1791 | if (y > ymin) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1792 | y--; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1793 | } else if (strcmp(keys, GNT_KEY_DOWN) == 0) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1794 | if (y + h < ymax) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1795 | y++; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1796 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1797 | if (ox != x || oy != y) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1798 | gnt_screen_move_widget(widget, x, y); |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1799 | window_reverse(widget, TRUE, wm); |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1800 | return TRUE; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1801 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1802 | } else if (wm->mode == GNT_KP_MODE_RESIZE) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1803 | if (strcmp(keys, GNT_KEY_LEFT) == 0) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1804 | w--; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1805 | } else if (strcmp(keys, GNT_KEY_RIGHT) == 0) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1806 | if (x + w < xmax) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1807 | w++; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1808 | } else if (strcmp(keys, GNT_KEY_UP) == 0) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1809 | h--; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1810 | } else if (strcmp(keys, GNT_KEY_DOWN) == 0) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1811 | if (y + h < ymax) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1812 | h++; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1813 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1814 | if (oh != h || ow != w) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1815 | gnt_screen_resize_widget(widget, w, h); |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1816 | window_reverse(widget, TRUE, wm); |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1817 | return TRUE; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1818 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1819 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1820 | if (strcmp(keys, "\r") == 0 || strcmp(keys, "\033") == 0) { |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1821 | window_reverse(widget, FALSE, wm); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1822 | wm->mode = GNT_KP_MODE_NORMAL; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1823 | } |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1824 | return TRUE; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1825 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1826 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1827 | /* Escape to close the window-list or action-list window */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1828 | if (strcmp(keys, "\033") == 0) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1829 | if (wm->_list.window) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1830 | gnt_widget_destroy(wm->_list.window); |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1831 | return TRUE; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1832 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1833 | } else if (keys[0] == '\033' && isdigit(keys[1]) && keys[2] == '\0') { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1834 | /* Alt+x for quick switch */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1835 | int n = *(keys + 1) - '0'; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1836 | GList *list = NULL; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1837 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1838 | if (n == 0) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1839 | n = 10; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1840 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1841 | list = g_list_append(list, GINT_TO_POINTER(n - 1)); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1842 | switch_window_n(GNT_BINDABLE(wm), list); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1843 | g_list_free(list); |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1844 | return TRUE; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1845 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1846 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1847 | if (wm->menu) |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1848 | ret = gnt_widget_key_pressed(GNT_WIDGET(wm->menu), keys); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1849 | else if (wm->_list.window) |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1850 | ret = gnt_widget_key_pressed(wm->_list.window, keys); |
|
20821
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20180
diff
changeset
|
1851 | else if (wm->cws->ordered) { |
|
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20180
diff
changeset
|
1852 | GntWidget *win = wm->cws->ordered->data; |
|
20822
b1ed85d89a4a
Toplevel boxes don't have menus.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
1853 | if (GNT_IS_WINDOW(win)) { |
|
b1ed85d89a4a
Toplevel boxes don't have menus.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
1854 | GntMenu *menu = GNT_WINDOW(win)->menu; |
|
b1ed85d89a4a
Toplevel boxes don't have menus.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
1855 | if (menu) { |
|
b1ed85d89a4a
Toplevel boxes don't have menus.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
1856 | const char *id = gnt_window_get_accel_item(GNT_WINDOW(win), keys); |
|
b1ed85d89a4a
Toplevel boxes don't have menus.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
1857 | if (id) |
|
b1ed85d89a4a
Toplevel boxes don't have menus.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
1858 | ret = (gnt_menu_get_item(menu, id) != NULL); |
|
b1ed85d89a4a
Toplevel boxes don't have menus.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
1859 | } |
|
20821
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20180
diff
changeset
|
1860 | } |
|
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20180
diff
changeset
|
1861 | if (!ret) |
|
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20180
diff
changeset
|
1862 | ret = gnt_widget_key_pressed(win, keys); |
|
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20180
diff
changeset
|
1863 | } |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15838
diff
changeset
|
1864 | return ret; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1865 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1866 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1867 | static void |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1868 | gnt_wm_win_resized(GntWM *wm, GntNode *node) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1869 | { |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1870 | /*refresh_node(node->me, node, NULL);*/ |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1871 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1872 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1873 | static void |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1874 | gnt_wm_win_moved(GntWM *wm, GntNode *node) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1875 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1876 | refresh_node(node->me, node, NULL); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1877 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1878 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1879 | void gnt_wm_resize_window(GntWM *wm, GntWidget *widget, int width, int height) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1880 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1881 | gboolean ret = TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1882 | GntNode *node; |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1883 | int maxx, maxy; |
|
21471
4dcb5c206238
Fix size calculation when shadow is enabled.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21453
diff
changeset
|
1884 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1885 | while (widget->parent) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1886 | widget = widget->parent; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1887 | node = g_hash_table_lookup(wm->nodes, widget); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1888 | if (!node) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1889 | return; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1890 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1891 | g_signal_emit(wm, signals[SIG_CONFIRM_RESIZE], 0, widget, &width, &height, &ret); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1892 | if (!ret) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1893 | return; /* resize is not permitted */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1894 | hide_panel(node->panel); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1895 | gnt_widget_set_size(widget, width, height); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1896 | gnt_widget_draw(widget); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1897 | |
|
21471
4dcb5c206238
Fix size calculation when shadow is enabled.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21453
diff
changeset
|
1898 | maxx = getmaxx(stdscr); |
|
4dcb5c206238
Fix size calculation when shadow is enabled.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21453
diff
changeset
|
1899 | maxy = getmaxy(stdscr) - 1; |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1900 | height = MIN(height, maxy); |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1901 | width = MIN(width, maxx); |
|
16039
463477dade33
More fixes for resizing when shadow is turned on.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16025
diff
changeset
|
1902 | wresize(node->window, height, width); |
|
15804
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1903 | replace_panel(node->panel, node->window); |
|
a06705e0130e
Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15802
diff
changeset
|
1904 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1905 | g_signal_emit(wm, signals[SIG_RESIZED], 0, node); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1906 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1907 | show_panel(node->panel); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1908 | update_screen(wm); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1909 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1910 | |
|
15129
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1911 | static void |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1912 | write_gdi(gpointer key, gpointer value, gpointer data) |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1913 | { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1914 | GntPosition *p = value; |
|
15874
46df7421a1b5
Enable DEBUG_CFLAGS in libgnt and fix up a number of compile warnings and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15863
diff
changeset
|
1915 | fprintf(data, ".%s = %d;%d\n", (char *)key, p->x, p->y); |
|
15129
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1916 | } |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1917 | |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1918 | static gboolean |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1919 | write_already(gpointer data) |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1920 | { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1921 | GntWM *wm = data; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1922 | FILE *file; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1923 | char *filename; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1924 | |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1925 | filename = g_build_filename(g_get_home_dir(), ".gntpositions", NULL); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1926 | |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1927 | file = fopen(filename, "wb"); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1928 | if (file == NULL) { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1929 | g_printerr("GntWM: error opening file to save positions\n"); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1930 | } else { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1931 | fprintf(file, "[positions]\n"); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1932 | g_hash_table_foreach(wm->positions, write_gdi, file); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1933 | fclose(file); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1934 | } |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1935 | |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1936 | g_free(filename); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1937 | g_source_remove(write_timeout); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1938 | write_timeout = 0; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1939 | return FALSE; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1940 | } |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1941 | |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1942 | static void |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1943 | write_positions_to_file(GntWM *wm) |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1944 | { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1945 | if (write_timeout) { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1946 | g_source_remove(write_timeout); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1947 | } |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1948 | write_timeout = g_timeout_add(10000, write_already, wm); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1949 | } |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1950 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1951 | void gnt_wm_move_window(GntWM *wm, GntWidget *widget, int x, int y) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1952 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1953 | gboolean ret = TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1954 | GntNode *node; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1955 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1956 | while (widget->parent) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1957 | widget = widget->parent; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1958 | node = g_hash_table_lookup(wm->nodes, widget); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1959 | if (!node) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1960 | return; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1961 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1962 | g_signal_emit(wm, signals[SIG_CONFIRM_MOVE], 0, widget, &x, &y, &ret); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1963 | if (!ret) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1964 | return; /* resize is not permitted */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1965 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1966 | gnt_widget_set_position(widget, x, y); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1967 | move_panel(node->panel, y, x); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1968 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1969 | g_signal_emit(wm, signals[SIG_MOVED], 0, node); |
|
16056
211c0f245156
Don't remember the position of transient windows
Richard Nelson <wabz@pidgin.im>
parents:
16039
diff
changeset
|
1970 | if (gnt_style_get_bool(GNT_STYLE_REMPOS, TRUE) && GNT_IS_BOX(widget) && |
|
211c0f245156
Don't remember the position of transient windows
Richard Nelson <wabz@pidgin.im>
parents:
16039
diff
changeset
|
1971 | !GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_TRANSIENT)) { |
|
15129
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1972 | const char *title = GNT_BOX(widget)->title; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1973 | if (title) { |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1974 | GntPosition *p = g_new0(GntPosition, 1); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1975 | GntWidget *wid = node->me; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1976 | p->x = wid->priv.x; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1977 | p->y = wid->priv.y; |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1978 | g_hash_table_replace(wm->positions, g_strdup(title), p); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1979 | write_positions_to_file(wm); |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1980 | } |
|
4722d1cf7938
[gaim-migrate @ 17851]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15020
diff
changeset
|
1981 | } |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1982 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1983 | update_screen(wm); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1984 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1985 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1986 | static void |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1987 | gnt_wm_give_focus(GntWM *wm, GntWidget *widget) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1988 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1989 | GntNode *node = g_hash_table_lookup(wm->nodes, widget); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1990 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1991 | if (!node) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1992 | return; |
|
18690
85033822cf93
merge of '63410823a172d188421e84f73dfbaed4a20be58a'
Eric Polino <aluink@pidgin.im>
parents:
18688
diff
changeset
|
1993 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1994 | if (widget != wm->_list.window && !GNT_IS_MENU(widget) && |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1995 | wm->cws->ordered->data != widget) { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1996 | GntWidget *w = wm->cws->ordered->data; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
1997 | wm->cws->ordered = g_list_bring_to_front(wm->cws->ordered, widget); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1998 | gnt_widget_set_focus(w, FALSE); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1999 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2000 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2001 | gnt_widget_set_focus(widget, TRUE); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2002 | GNT_WIDGET_UNSET_FLAGS(widget, GNT_WIDGET_URGENT); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2003 | gnt_widget_draw(widget); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2004 | top_panel(node->panel); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2005 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2006 | if (wm->_list.window) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2007 | GntNode *nd = g_hash_table_lookup(wm->nodes, wm->_list.window); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2008 | top_panel(nd->panel); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2009 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2010 | update_screen(wm); |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
2011 | gnt_ws_draw_taskbar(wm->cws, FALSE); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2012 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2013 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2014 | void gnt_wm_update_window(GntWM *wm, GntWidget *widget) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2015 | { |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
2016 | GntNode *node = NULL; |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
2017 | GntWS *ws; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2018 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2019 | while (widget->parent) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2020 | widget = widget->parent; |
|
18638
cf86c3ae160f
Some extra checks to avoid weird crashes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18600
diff
changeset
|
2021 | if (!GNT_IS_MENU(widget)) { |
|
cf86c3ae160f
Some extra checks to avoid weird crashes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18600
diff
changeset
|
2022 | if (!GNT_IS_BOX(widget)) |
|
cf86c3ae160f
Some extra checks to avoid weird crashes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18600
diff
changeset
|
2023 | return; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2024 | gnt_box_sync_children(GNT_BOX(widget)); |
|
18638
cf86c3ae160f
Some extra checks to avoid weird crashes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18600
diff
changeset
|
2025 | } |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2026 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
2027 | ws = gnt_wm_widget_find_workspace(wm, widget); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2028 | node = g_hash_table_lookup(wm->nodes, widget); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2029 | if (node == NULL) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2030 | gnt_wm_new_window(wm, widget); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2031 | } else |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2032 | g_signal_emit(wm, signals[SIG_UPDATE_WIN], 0, node); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2033 | |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
2034 | if (ws == wm->cws || GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_TRANSIENT)) { |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
2035 | gnt_wm_copy_win(widget, node); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
2036 | update_screen(wm); |
|
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
2037 | gnt_ws_draw_taskbar(wm->cws, FALSE); |
|
18638
cf86c3ae160f
Some extra checks to avoid weird crashes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18600
diff
changeset
|
2038 | } else if (ws && ws != wm->cws && GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_URGENT)) { |
|
16524
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
2039 | if (!act || (act && !g_list_find(act, ws))) |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
2040 | act = g_list_prepend(act, ws); |
|
1f114ebacb0d
Show an activity message when a window in the non-current workspace is flagged urgent
Richard Nelson <wabz@pidgin.im>
parents:
16523
diff
changeset
|
2041 | update_act_msg(); |
|
16519
9458657f5b99
Initial workspace support. refs #51
Richard Nelson <wabz@pidgin.im>
parents:
16356
diff
changeset
|
2042 | } |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2043 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2044 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2045 | gboolean gnt_wm_process_click(GntWM *wm, GntMouseEvent event, int x, int y, GntWidget *widget) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2046 | { |
|
15838
45289a1439b2
Get rid of some minor C99isms
Mark Doliner <markdoliner@pidgin.im>
parents:
15804
diff
changeset
|
2047 | gboolean ret = TRUE; |
|
15802
1e124a68997e
gntgaim idle reporting, this fixes idle return
Richard Nelson <wabz@pidgin.im>
parents:
15714
diff
changeset
|
2048 | idle_update = TRUE; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2049 | g_signal_emit(wm, signals[SIG_MOUSE_CLICK], 0, event, x, y, widget, &ret); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2050 | return ret; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2051 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2052 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2053 | void gnt_wm_raise_window(GntWM *wm, GntWidget *widget) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2054 | { |
| 18133 | 2055 | GntWS *ws = gnt_wm_widget_find_workspace(wm, widget); |
| 2056 | if (wm->cws != ws) | |
| 2057 | gnt_wm_switch_workspace(wm, g_list_index(wm->workspaces, ws)); | |
|
18567
8dd8eae7a1aa
Fix some focus issues.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18420
diff
changeset
|
2058 | if (widget != wm->cws->ordered->data) { |
|
8dd8eae7a1aa
Fix some focus issues.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18420
diff
changeset
|
2059 | GntWidget *wid = wm->cws->ordered->data; |
|
8dd8eae7a1aa
Fix some focus issues.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18420
diff
changeset
|
2060 | wm->cws->ordered = g_list_bring_to_front(wm->cws->ordered, widget); |
|
8dd8eae7a1aa
Fix some focus issues.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18420
diff
changeset
|
2061 | gnt_widget_set_focus(wid, FALSE); |
|
8dd8eae7a1aa
Fix some focus issues.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18420
diff
changeset
|
2062 | gnt_widget_draw(wid); |
|
8dd8eae7a1aa
Fix some focus issues.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18420
diff
changeset
|
2063 | } |
|
8dd8eae7a1aa
Fix some focus issues.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18420
diff
changeset
|
2064 | gnt_widget_set_focus(widget, TRUE); |
|
8dd8eae7a1aa
Fix some focus issues.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18420
diff
changeset
|
2065 | gnt_widget_draw(widget); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2066 | g_signal_emit(wm, signals[SIG_GIVE_FOCUS], 0, widget); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2067 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2068 | |
|
16356
13cc89b3ab7c
Dialogs opened resulting from a mouse-click should fain focus.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16189
diff
changeset
|
2069 | void gnt_wm_set_event_stack(GntWM *wm, gboolean set) |
|
13cc89b3ab7c
Dialogs opened resulting from a mouse-click should fain focus.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16189
diff
changeset
|
2070 | { |
|
13cc89b3ab7c
Dialogs opened resulting from a mouse-click should fain focus.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16189
diff
changeset
|
2071 | wm->event_stack = set; |
|
13cc89b3ab7c
Dialogs opened resulting from a mouse-click should fain focus.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16189
diff
changeset
|
2072 | } |
|
13cc89b3ab7c
Dialogs opened resulting from a mouse-click should fain focus.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16189
diff
changeset
|
2073 | |
|
19317
61e0384e95d1
merge of 'a6866f1419c4de85b909b43494d0f6a71018f9bc'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
diff
changeset
|
2074 |