Merge lp:~goehle/evolution-indicator/dont-quit-on-close into lp:evolution-indicator

Proposed by Geoff Goehle
Status: Needs review
Proposed branch: lp:~goehle/evolution-indicator/dont-quit-on-close
Merge into: lp:evolution-indicator
Diff against target: 1131 lines (+975/-24) (has conflicts)
5 files modified
ChangeLog (+628/-0)
autogen.sh (+0/-11)
configure.ac (+6/-1)
data/evolution-indicator.schemas.in (+33/-0)
src/evolution-indicator.c (+308/-12)
Text conflict in configure.ac
Text conflict in src/evolution-indicator.c
To merge this branch: bzr merge lp:~goehle/evolution-indicator/dont-quit-on-close
Reviewer Review Type Date Requested Status
Indicator Applet Developers Pending
Review via email: mp+42151@code.launchpad.net

Description of the change

A fix of the last merge, which was bungled.

I've included functionality which allows the indicator-applet to have evolution run in the background with no open windows.

Using g_signal when the last open shell window is closed the indicator applet hides the window instead of deleting it. This gives the impression that evolution is "running in the applet".

I also implemented the ability to turn this feature on and off and to run evolution on startup.

To post a comment you must log in.
Revision history for this message
Geoff Goehle (goehle) wrote :

Still getting used to merging and bzr. Some of these changes are not intended.... The bulk should be there but lines 70-120, 190-162, 380-414, 488-565 should removed.

74. By Geoff Goehle

Fixed unintended changes and added a missing file

Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

Thanks a lot for your work there, you should have a look at the ayatana discussions that took place during latest UDS, particularly this spec and the video associated. You can find the reference there:
https://lists.launchpad.net/ayatana/msg04650.html

So, even if I was convinced that the "don't quit on close" and seeing email as a service was the right stuff to do, I'm not anymore and let you raise the point on the ayatana mailing list (maybe a follow up on that email?) and asking Matthew to restate those points.

Revision history for this message
Geoff Goehle (goehle) wrote :

I can't say that I really understand the discussion, but then again I'm
a mathematician and not a coder. The distinction between "service" vs
"nonservice" appliations is lost on me...

In any case, the whole thing is kind of moot since ubuntu is moving to
unity.

On Mon, 2011-02-07 at 15:54 +0000, Didier Roche wrote:
> Thanks a lot for your work there, you should have a look at the ayatana discussions that took place during latest UDS, particularly this spec and the video associated. You can find the reference there:
> https://lists.launchpad.net/ayatana/msg04650.html
>
> So, even if I was convinced that the "don't quit on close" and seeing email as a service was the right stuff to do, I'm not anymore and let you raise the point on the ayatana mailing list (maybe a follow up on that email?) and asking Matthew to restate those points.

Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

> In any case, the whole thing is kind of moot since ubuntu is moving to
unity.

Why do you say that? the indicator are completely part of the unity experience, so this work is primordial.

Revision history for this message
Geoff Goehle (goehle) wrote :

I haven't used unity regularly, but from what I remember unity has the "mac" style program launchers. If there is an evolution icon on the launcher bar and evolution is minimized then there isn't a visible "window". All that changes is the icon on the launcher bar picks up a little triangle underneath, as opposed to gnome where the window stays on the task bar. So it unity you can effectively replicate the minimize to applet functionality by using the minimize button.

Still it doesn't address the fact that clicking "close" closes evolution, and it doesn't close any other Indicator Applet applications, which is a point of confusion.

75. By Geoff Goehle

Updated previous patch to work with new version of evolution indicator.
When the option is enabled the indicator will allow evolution to run
without a visible window.

76. By Geoff Goehle

Fixed unintended changes

Revision history for this message
Geoff Goehle (goehle) wrote :

Well I've been using unity since release and changed my mind about the need for "dont-quit-on-close" functionality being obsolete.

1. Space on the sidebar is at a premium. The icons are large enough that having the evolution icon there all the time adds clutter.

2. There are now 5 programs that make use of the indicator area (evolution, banshee, empathy, gwibber, and ubuntu-one). Of these evolution is the only one that doesn't run without an open window.

I updated my patch for the new version.

Unmerged revisions

76. By Geoff Goehle

Fixed unintended changes

75. By Geoff Goehle

Updated previous patch to work with new version of evolution indicator.
When the option is enabled the indicator will allow evolution to run
without a visible window.

74. By Geoff Goehle

Fixed unintended changes and added a missing file

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'ChangeLog'
--- ChangeLog 2009-02-03 13:43:52 +0000
+++ ChangeLog 2011-05-09 14:58:08 +0000
@@ -1,1 +1,629 @@
1# Generated by Makefile. Do not edit.
2
32011-01-14 Ted Gould <ted@gould.cx>
4
5 0.2.14
6
72011-01-14 Ted Gould <ted@gould.cx>
8
9 Updating to new libindicate
10
112011-01-14 Ken VanDine <ken.vandine@canonical.com>
12
13 Change pkgconfig check for indicate to indicate-0.5 and require 0.4.91
14
152010-11-23 Didier Roche <didier.roche@canonical.com>
16
17 build with new evolution
18
192010-11-23 Didier Roche <didier.roche@canonical.com>
20
21 new upstream release
22
232010-10-14 Didier Roche <didier.roche@canonical.com>
24
25 remove workaround as e-d-s get it right now
26
272010-10-13 Didier Roche <didier.roche@canonical.com>
28
29 workaround for local Inbox as not tagged as an Inbox for evolution
30
312010-10-13 Didier Roche <didier.roche@canonical.com>
32
33 better debug messages
34
352010-10-13 Didier Roche <didier.roche@canonical.com>
36
37 prefer a debug to print
38
392010-10-13 Didier Roche <didier.roche@canonical.com>
40
41 correct gdk_display transtype
42
432010-10-12 Didier Roche <didier.roche@canonical.com>
44
45 add some flags for deprecation
46
472010-10-07 Didier Roche <didier.roche@canonical.com>
48
49 build with gtk deprecation flags (LP: #655937)
50
512010-06-22 Didier Roche <didier.roche@canonical.com>
52
53 bump version for release
54
552010-06-22 Didier Roche <didier.roche@canonical.com>
56
57 merge evo 2.30 branch
58
592010-03-31 Francesco Marella <francesco.marella@gmail.com>
60
61 merge master branch
62
632010-03-08 Francesco Marella <francesco.marella@gmail.com>
64
65 Merge with master branch
66
672010-03-02 Francesco Marella <francesco.marella@gmail.com>
68
69 Remove hook for event "started.done"
70
712010-03-01 Francesco Marella <francesco.marella@gmail.com>
72
73 Fix evolution-indicator to work with Evolution 2.30
74
75 Changes:
76 - rip off e-shell.h, tomboy copy-paste code
77 - properly get the shell and the shell window (mail-notification plugin inspired me :))
78 - present the shell window with event time provided by libindicate
79
802010-03-30 Ted Gould <ted@gould.cx>
81
82 0.2.8
83
842010-03-30 Ted Gould <ted@gould.cx>
85
86 Use property syntax for ngettext
87
882010-03-29 Ted Gould <ted@gould.cx>
89
90 Bug number
91
922010-03-29 Ted Gould <ted@gould.cx>
93
94 Remove extra _() markers that are messing up translation.
95
962010-03-04 Ted Gould <ted@gould.cx>
97
98 0.2.7
99
1002010-03-04 Ted Gould <ted@gould.cx>
101
102 Command items for running evolution.
103
1042010-03-03 Ted Gould <ted@gould.cx>
105
106 Adding some command menu items.
107
1082010-03-03 Ted Gould <ted@gould.cx>
109
110 Need newest libindicate
111
1122010-03-04 Ted Gould <ted@gould.cx>
113
114 Updating to signals from new libindicate and using the timestamps.
115
1162010-03-03 Ted Gould <ted@gould.cx>
117
118 Bumping up indicate required version to 0.3.0 to get the new signals.
119
1202010-03-03 Ted Gould <ted@gould.cx>
121
122 Excising the tomboy present code.
123
1242010-03-03 Ted Gould <ted@gould.cx>
125
126 Getting the timestamp out of the display signal and switching to present_with_time
127
1282010-01-21 Neil Jagdish Patel <neil.patel@canonical.com>
129
130 [release] 0.2.6
131
1322009-12-21 Ken VanDine <ken.vandine@canonical.com>
133
134 The Evolution Desktop file has moved.
135
1362009-12-17 Ken VanDine <ken.vandine@canonical.com>
137
138 Fixed path to evolution desktop file
139
1402009-11-19 Neil Jagdish Patel <neil.patel@canonical.com>
141
142 Fix 436755 (indicator-applet doesn't change icon when I recieve new e-mails via Evolution)
143
144 Basically add support for a default Inbox for POP3
145
146 modified:
147 po/Makefile.in.in
148 src/evolution-indicator.c
149
1502009-11-19 Neil Jagdish Patel <neil.patel@canonical.com>
151
152 modified:
153 src/evolution-indicator.c
154 - A line went missing :(
155
1562009-11-19 Neil Jagdish Patel <neil.patel@canonical.com>
157
158 modified:
159 src/evolution-indicator.c
160 - Some stability fixes
161
1622009-11-19 Neil Jagdish Patel <neil.patel@canonical.com>
163
164 modified:
165 po/Makefile.in.in
166 src/evolution-indicator.c
167 - Add support POP accounts (default Inbox)
168 - Make sure we can translate it without requiring new strings
169
1702009-09-17 Neil Jagdish Patel <neil.patel@canonical.com>
171
172 modified:
173 configure.ac
174 - New release 0.2.4
175
1762009-09-17 Neil Jagdish Patel <neil.patel@canonical.com>
177
178 modified:
179 src/evolution-indicator.c
180 pending merges:
181 Neil Jagdish Patel 2009-09-16 modified:
182 Neil Jagdish Patel 2009-09-16 modified:
183 Neil Jagdish Patel 2009-09-16 modified:
184
1852009-09-16 Neil Jagdish Patel <neil.patel@canonical.com>
186
187 modified:
188 src/evolution-indicator.c
189 - Create directory before writing to it as per teds comments
190
1912009-09-16 Neil Jagdish Patel <neil.patel@canonical.com>
192
193 modified:
194 src/evolution-indicator.c
195 - Be more strict in hiding the server is show_messages is disabled
196
1972009-09-16 Neil Jagdish Patel <neil.patel@canonical.com>
198
199 modified:
200 src/evolution-indicator.c
201 - Add support to writing/deleting the blacklist file
202 - Show/hide the evolution entry in the menu depending on the user checking
203 /unchecking the "show in panel" box and/or enabling/disabling the
204 plugin
205
2062009-09-16 Neil Jagdish Patel <neil.patel@canonical.com>
207
208 modified:
209 src/evolution-indicator.c
210 pending merges:
211 Neil Jagdish Patel 2009-09-16 modified:
212 Neil Jagdish Patel 2009-09-16 modified:
213 Neil Jagdish Patel 2009-09-16 modified:
214 Neil Jagdish Patel 2009-09-16 modified:
215
2162009-09-16 Neil Jagdish Patel <neil.patel@canonical.com>
217
218 modified:
219 src/evolution-indicator.c
220 - Don't show accounts that can't receive mail, and therefore will never have
221 an unread message count
222
2232009-09-16 Neil Jagdish Patel <neil.patel@canonical.com>
224
225 modified:
226 src/evolution-indicator.c
227 - Instead of destroying the indicator of an inactive account, hide it
228
2292009-09-16 Neil Jagdish Patel <neil.patel@canonical.com>
230
231 modified:
232 src/evolution-indicator.c
233 - Woops, forgot to increment i in while loop
234
2352009-09-16 Neil Jagdish Patel <neil.patel@canonical.com>
236
237 modified:
238 src/evolution-indicator.c
239 - Ignore accounts where enabled==false in gconf
240
2412009-09-16 Neil Jagdish Patel <neil.patel@canonical.com>
242
243 modified:
244 src/evolution-indicator.c
245 pending merges:
246 Neil Jagdish Patel 2009-09-16 modified:
247
2482009-09-16 Neil Jagdish Patel <neil.patel@canonical.com>
249
250 modified:
251 src/evolution-indicator.c
252 - Zero the global message count when we zero the indicator counts
253
2542009-09-10 Neil Jagdish Patel <neil.patel@canonical.com>
255
256 modified:
257 configure.ac
258 - New release
259
2602009-09-10 Neil Jagdish Patel <neil.patel@canonical.com>
261
262 modified:
263 src/evolution-indicator.c
264 - Woops, typo
265
2662009-09-10 Neil Jagdish Patel <neil.patel@canonical.com>
267
268 modified:
269 src/evolution-indicator.c
270 - Update the names to be lowercase
271
2722009-09-09 Neil Jagdish Patel <neil.patel@canonical.com>
273
274 modified:
275 configure.ac
276 - Bump required version of libindicate to 0.2.0
277
2782009-09-09 Neil Jagdish Patel <neil.patel@canonical.com>
279
280 modified:
281 configure.ac
282 - Release 0.2.0 for libindicate-0.2
283
2842009-09-09 Neil Jagdish Patel <neil.patel@canonical.com>
285
286 removed:
287 src/mail-server.c
288 src/mail-server.h
289 modified:
290 .bzrignore
291 Makefile.am
292 configure.ac
293 src/Makefile.am
294 src/evolution-indicator.c
295 pending merges:
296 Neil Jagdish Patel 2009-09-09 modified:
297 Neil Jagdish Patel 2009-09-09 modified:
298 Neil Jagdish Patel 2009-09-09 modified:
299 Neil Jagdish Patel 2009-09-09 modified:
300 Neil Jagdish Patel 2009-09-09 modified:
301 Neil Jagdish Patel 2009-09-09 modified:
302 Neil Jagdish Patel 2009-09-09 modified:
303 Neil Jagdish Patel 2009-09-09 modified:
304 Neil Jagdish Patel 2009-09-09 modified:
305 Neil Jagdish Patel 2009-09-09 Update ignores
306 Neil Jagdish Patel 2009-09-09 removed:
307
308 - Merged branch that added support for the new libindicate (0.2) and
309 added support for multiple-mailboxes
310
3112009-09-09 Neil Jagdish Patel <neil.patel@canonical.com>
312
313 modified:
314 Makefile.am
315 - Add support for generating ChangeLog on make dist
316
317 src/evolution-indicator.c
318 Make Ted's suggested changes (thanks!)
319 - Move "unread" string into #define
320 - Use g_strdup_printf instead of pre-alloc'ed buf & g_sprintf
321 - Initialise GTimeVal struct to NULL properly
322
3232009-09-09 Neil Jagdish Patel <neil.patel@canonical.com>
324
325 modified:
326 src/evolution-indicator.c
327 - Fix warning
328
3292009-09-09 Neil Jagdish Patel <neil.patel@canonical.com>
330
331 modified:
332 src/evolution-indicator.c
333 - Add some support for showing the evolution window
334
3352009-09-09 Neil Jagdish Patel <neil.patel@canonical.com>
336
337 modified:
338 src/evolution-indicator.c
339 - Clean up read-notify a bit
340
3412009-09-09 Neil Jagdish Patel <neil.patel@canonical.com>
342
343 modified:
344 src/evolution-indicator.c
345 - Reset count and don't look for attention when the mail is 'read' as
346 defined by evolution :)
347
3482009-09-09 Neil Jagdish Patel <neil.patel@canonical.com>
349
350 modified:
351 src/evolution-indicator.c
352 - Stray '-' screwed up processing of new mail
353
3542009-09-09 Neil Jagdish Patel <neil.patel@canonical.com>
355
356 modified:
357 src/evolution-indicator.c
358 - Added a debug statement
359
3602009-09-09 Neil Jagdish Patel <neil.patel@canonical.com>
361
362 modified:
363 src/evolution-indicator.c
364 - Add some support for indicating new messages
365
3662009-09-09 Neil Jagdish Patel <neil.patel@canonical.com>
367
368 modified:
369 src/evolution-indicator.c
370 - Try updating with multiples of minutes
371
3722009-09-09 Neil Jagdish Patel <neil.patel@canonical.com>
373
374 Update ignores
375
3762009-09-09 Neil Jagdish Patel <neil.patel@canonical.com>
377
378 removed:
379 src/mail-server.c
380 src/mail-server.h
381 - Not needed anymore
382
383 modified:
384 configure.ac
385 - Bump version
386
387 src/Makefile.am
388 - Remove mail-server.*
389
390 src/evolution-indicator.c
391 - Use libindicate directly, creating indicator per account
392
3932009-09-08 Neil Jagdish Patel <neil.patel@canonical.com>
394
395 modified:
396 po/Makefile.in.in
397 src/evolution-indicator.c
398 pending merges:
399 Neil Jagdish Patel 2009-09-08 modified:
400 Neil Jagdish Patel 2009-09-08 modified:
401 Neil Jagdish Patel 2009-09-08 modified:
402 Neil Jagdish Patel 2009-08-25 modified:
403
404 - Move the preferences group to the top of the tab
405 - Add support for changing the strings used depending on the number of
406 configured accounts
407
4082009-09-08 Neil Jagdish Patel <neil.patel@canonical.com>
409
410 modified:
411 src/evolution-indicator.c
412 - Capitalise 'any' in 'Any Inbox', so it matches with the rest of the
413 sentence, and the 'Any Folder' option.
414
4152009-09-08 Neil Jagdish Patel <neil.patel@canonical.com>
416
417 modified:
418 src/evolution-indicator.c
419 - Depending on the number of accounts, change the text shown in
420 the combo (Inbox vs. any Inbox)
421
4222009-09-08 Neil Jagdish Patel <neil.patel@canonical.com>
423
424 modified:
425 po/Makefile.in.in
426 src/evolution-indicator.c
427 - Add some support to get the number of accounts
428
4292009-08-25 Neil Jagdish Patel <neil.patel@canonical.com>
430
431 modified:
432 src/evolution-indicator.c
433 - Move the preferences to the top of the pane
434
4352009-08-04 Ted Gould <ted@canonical.com>
436
437 Releasing version 0.1.16
438
4392009-08-04 Ted Gould <ted@canonical.com>
440
441 Cleaning up some more
442
4432009-08-03 Ted Gould <ted@canonical.com>
444
445 Ken Vandine's patch to include gtk-html-editor as it's needed for the new Evolution
446
4472009-07-30 Ken VanDine <ken.vandine@canonical.com>
448
449 Added gtkhtml-editor to PKG_CHECK_MODULES, some evolution headers have changed so now we need to find the include path for it.
450
4512009-04-23 Ted Gould <ted@canonical.com>
452
453 Making a 15 -- brown paper bag release.
454
4552009-04-22 Ted Gould <ted@canonical.com>
456
457 Changing the truthiness of the string comparison
458
4592009-04-21 Ted Gould <ted@canonical.com>
460
461 Making 14
462
4632009-04-21 Ted Gould <ted@canonical.com>
464
465 Use 'g_strcmp0' instead of 'g_str_equal' to protect against the NULL string from '_wnck_get_wmclass'
466
4672009-04-08 Ted Gould <ted@canonical.com>
468
469 Now we're 13.
470
4712009-04-07 Ted Gould <ted@canonical.com>
472
473 Adding the LP bug.
474
4752009-04-07 Ted Gould <ted@canonical.com>
476
477 Switch to using the library version of the GLib Internationalization code.
478
4792009-04-07 Ted Gould <ted@canonical.com>
480
481 These seem to change the domain for all of Evolution, which really isn't a good idea.
482
4832009-04-06 Ted Gould <ted@canonical.com>
484
485 Wow, growing up to 12 already.
486
4872009-04-06 Ted Gould <ted@canonical.com>
488
489 Patch to fix i18n issues in sending notifications. Patch from Timo Jyrinki.
490
4912009-04-03 Ted Gould <ted@canonical.com>
492
493 Ah, forgot to add files
494
4952009-04-03 Ted Gould <ted@canonical.com>
496
497 Patch from the great Neil Patel to make it so that we use X.org to determine if the current window is Evolution.
498
4992009-04-03 Ted Gould <ted@canonical.com>
500
501 Hmm, not sure why this change, but seems benign
502
5032009-03-18 Ted Gould <ted@canonical.com>
504
505 Bumping version number
506
5072009-03-18 Ted Gould <ted@canonical.com>
508
509 Patch from Neil which makes it so that Evo doesn't send notificaitons when focused
510
5112009-03-15 Ted Gould <ted@canonical.com>
512
513 Adding a configure option to override the install directory so that we can pass distcheck
514
5152009-03-15 Ted Gould <ted@canonical.com>
516
517 Incrementing version number
518
5192009-03-15 Ted Gould <ted@canonical.com>
520
521 Make it so that the IDs are always unique, even if they're not used heavily. This fixes some warnings on the listeners.
522
5232009-03-09 Ted Gould <ted@canonical.com>
524
525 Changing the icon name. Match from Mirco Muller.
526
5272009-02-16 Ted Gould <ted@canonical.com>
528
529 0.1.9
530
5312009-02-16 Ted Gould <ted@canonical.com>
532
533 Some slight changes for distcheck to be happy.
534
5352009-02-16 Ted Gould <ted@canonical.com>
536
537 Leaving the packaging for the packaging branch
538
5392009-02-16 Ted Gould <ted@canonical.com>
540
541 releasing version 0.1.8+ppa1
542
5432009-02-15 Ted Gould <ted@canonical.com>
544
545 releasing version 0.1.8
546
5472009-02-15 Ted Gould <ted@canonical.com>
548
549 Setting the destkop file and the type for the indicator
550 server subclass.
551
5522009-02-15 Ted Gould <ted@canonical.com>
553
554 releasing version 0.1.7+ppa2
555
5562009-02-15 Ted Gould <ted@canonical.com>
557
558 releasing version 0.1.7+ppa1
559
5602009-02-09 Neil Jagdish Patel <neil.patel@canonical.com>
561
562 -Redo the way message count is stored and signalled to the server
563 -Send indicator-added indicator-removed for every individual email
564 -Allow the user to disable the indicator aspect of the notifications
565
5662009-02-05 Neil Jagdish Patel <neil.patel@canonical.com>
567
568 releasing version 0.1.7
569
5702009-02-05 Neil Jagdish Patel <neil.patel@canonical.com>
571
572 * Added support for
573 - Only Inbox/All Folders notification
574 - Showing notification bubbles, updating them
575 - Playing sounds through the bubble
576
5772009-02-05 Neil Jagdish Patel <neil.patel@canonical.com>
578
579 Update ignores
580
5812009-02-05 Neil Jagdish Patel <neil.patel@canonical.com>
582
583 * Hook up the preferences to gconf, install schemas and keep up-to-date
584 * Added support for showing the preferences in the general tab of mail
585 preferences
586
5872009-02-04 Neil Jagdish Patel <neil.patel@canonical.com>
588
589 Add support for GConf and i18n support
590
5912009-02-04 Neil Jagdish Patel <neil.patel@canonical.com>
592
593 Initial support for preferences (layout)
594
5952009-02-04 Neil Jagdish Patel <neil.patel@canonical.com>
596
597 evolution-indicator (0.1.3) intrepid; urgency=low
598
599 * Reset indicator count when the user requests the showing of the window.
600
601 -- Neil J. Patel <neil.patel@canonical.com> Wed, 04 Feb 2009 11:53:04 +0100
602
6032009-02-04 Neil Jagdish Patel <neil.patel@canonical.com>
604
605 add the e-shell.h header
606
6072009-02-04 Neil Jagdish Patel <neil.patel@canonical.com>
608
609 evolution-indicator (0.1.2) intrepid; urgency=low
610
611 * Add support for ShowIndicatorToUser, by presenting the current Evolution
612 "Mail" window. If it does not exist, present the first window available.
613
614 -- Neil J. Patel <neil.patel@canonical.com> Wed, 04 Feb 2009 11:39:27 +0100
615
616 evolution-indicator (0.1.1) intrepid; urgency=low
617
6182009-02-03 Neil Jagdish Patel <neil.patel@canonical.com>
619
620 Update packaging
621
6222009-02-03 Neil Jagdish Patel <neil.patel@canonical.com>
623
624 * Seconf to initial commit
625
6262009-02-03 Neil Jagdish Patel <neil.patel@canonical.com>
627
628 Initial Commit
1629
2630
=== removed file 'autogen.sh'
--- autogen.sh 2009-02-03 14:47:26 +0000
+++ autogen.sh 1970-01-01 00:00:00 +0000
@@ -1,11 +0,0 @@
1#!/bin/sh
2
3PKG_NAME="evolution-indicator"
4
5which gnome-autogen.sh || {
6 echo "You need gnome-common from GNOME SVN"
7 exit 1
8}
9
10USE_GNOME2_MACROS=1 \
11. gnome-autogen.sh
120
=== modified file 'configure.ac'
--- configure.ac 2011-02-25 18:17:25 +0000
+++ configure.ac 2011-05-09 14:58:08 +0000
@@ -66,7 +66,12 @@
66 libnotify66 libnotify
67 libcanberra67 libcanberra
68 gtkhtml-editor-3.1468 gtkhtml-editor-3.14
69 unity69<<<<<<< TREE
70 unity
71=======
72 unity
73 dee-1.0
74>>>>>>> MERGE-SOURCE
70 )75 )
71AC_SUBST(DEPS_CFLAGS)76AC_SUBST(DEPS_CFLAGS)
72AC_SUBST(DEPS_LIBS)77AC_SUBST(DEPS_LIBS)
7378
=== modified file 'data/evolution-indicator.schemas.in'
--- data/evolution-indicator.schemas.in 2009-02-09 15:27:51 +0000
+++ data/evolution-indicator.schemas.in 2011-05-09 14:58:08 +0000
@@ -45,5 +45,38 @@
45 </locale>45 </locale>
46 </schema>46 </schema>
4747
48 <schema>
49 <key>/schemas/apps/evolution/eplugin/evolution_indicator/minimize_to_applet</key>
50 <applyto>/apps/evolution/eplugin/evolution_indicator/minimize_to_applet</applyto>
51 <owner>evolution-indicator</owner>
52 <type>bool</type>
53 <default>true</default>
54 <locale name="C">
55 <short>Use the indicator applet to keep evolution running without any visible windows.</short>
56 </locale>
57 </schema>
58
59 <schema>
60 <key>/schemas/apps/evolution/eplugin/evolution_indicator/run_on_startup</key>
61 <applyto>/apps/evolution/eplugin/evolution_indicator/run_on_startup</applyto>
62 <owner>evolution-indicator</owner>
63 <type>bool</type>
64 <default>false</default>
65 <locale name="C">
66 <short>Run evolution when computer starts.</short>
67 </locale>
68 </schema>
69
70 <schema>
71 <key>/schemas/apps/evolution/eplugin/evolution_indicator/hide_on_startup</key>
72 <applyto>/apps/evolution/eplugin/evolution_indicator/hide_on_startup</applyto>
73 <owner>evolution-indicator</owner>
74 <type>bool</type>
75 <default>false</default>
76 <locale name="C">
77 <short>Hide evolution once it starts.</short>
78 </locale>
79 </schema>
80
48 </schemalist>81 </schemalist>
49</gconfschemafile>82</gconfschemafile>
5083
=== modified file 'src/evolution-indicator.c'
--- src/evolution-indicator.c 2011-02-25 18:17:25 +0000
+++ src/evolution-indicator.c 2011-05-09 14:58:08 +0000
@@ -55,6 +55,9 @@
55#define PLAY_SOUND CONF_DIR"/play_sound"55#define PLAY_SOUND CONF_DIR"/play_sound"
56#define SHOW_BUBBLE CONF_DIR"/show_bubble"56#define SHOW_BUBBLE CONF_DIR"/show_bubble"
57#define SHOW_NEW_IN_PANEL CONF_DIR"/show_new_messages_in_panel"57#define SHOW_NEW_IN_PANEL CONF_DIR"/show_new_messages_in_panel"
58#define MINIMIZE_TO_APPLET CONF_DIR"/minimize_to_applet"
59#define RUN_ON_STARTUP CONF_DIR"/run_on_startup"
60#define HIDE_ON_STARTUP CONF_DIR"/hide_on_startup"
5861
59#define ACCOUNT_DIR "/apps/evolution/mail"62#define ACCOUNT_DIR "/apps/evolution/mail"
60#define ACCOUNTS ACCOUNT_DIR"/accounts"63#define ACCOUNTS ACCOUNT_DIR"/accounts"
@@ -84,11 +87,17 @@
84static gboolean play_sound = TRUE;87static gboolean play_sound = TRUE;
85static gboolean show_bubble = TRUE;88static gboolean show_bubble = TRUE;
86static gboolean show_count = FALSE;89static gboolean show_count = FALSE;
90static gboolean minimize_to_applet = TRUE;
91static gboolean run_on_startup = FALSE;
92static gboolean hide_on_startup = FALSE;
8793
88static guint only_inbox_id = 0;94static guint only_inbox_id = 0;
89static guint play_sound_id = 0;95static guint play_sound_id = 0;
90static guint show_bubble_id = 0;96static guint show_bubble_id = 0;
91static guint show_count_id = 0;97static guint show_count_id = 0;
98static guint minimize_to_applet_id = 0;
99static guint run_on_startup_id = 0;
100static guint hide_on_startup_id = 0;
92static guint accounts_id = 0;101static guint accounts_id = 0;
93102
94static gint message_count = 0;103static gint message_count = 0;
@@ -98,8 +107,11 @@
98107
99int e_plugin_lib_enable (EPlugin *ep, int enable);108int e_plugin_lib_enable (EPlugin *ep, int enable);
100GtkWidget * e_plugin_lib_get_configure_widget (EPlugin *ep);109GtkWidget * e_plugin_lib_get_configure_widget (EPlugin *ep);
110static GtkWidget * get_cfg_widget (void);
101111
102static void show_evolution (gpointer arg0, guint timestamp, gpointer arg1);112static void show_evolution (gpointer arg0, guint timestamp, gpointer arg1);
113static gboolean window_created_event (EShell *shell, GtkWindow *window);
114static gboolean window_delete_event (EShell *shell, GtkWindow *window);
103115
104static void show_evolution_in_indicator_applet (void);116static void show_evolution_in_indicator_applet (void);
105static void hide_evolution_in_indicator_applet (void);117static void hide_evolution_in_indicator_applet (void);
@@ -122,18 +134,6 @@
122 REAP_NAME134 REAP_NAME
123};135};
124136
125static GtkWidget *
126get_cfg_widget (void)
127{
128 GtkWidget *vbox;
129
130 vbox = gtk_vbox_new (FALSE, 6);
131
132 gtk_widget_show (vbox);
133
134 return vbox;
135}
136
137static gboolean137static gboolean
138evolution_is_focused (void)138evolution_is_focused (void)
139{139{
@@ -429,6 +429,83 @@
429}429}
430430
431static void431static void
432minimize_to_applet_changed (GConfClient *gclient,
433 guint id,
434 GConfEntry *entry,
435 gpointer data)
436{
437 GConfValue *value;
438
439 value = entry->value;
440
441 minimize_to_applet = gconf_value_get_bool (value);
442
443 g_debug ("EI: Minimize to applet %s", minimize_to_applet ? "true" : "false");
444}
445
446static void
447hide_on_startup_changed (GConfClient *gclient,
448 guint id,
449 GConfEntry *entry,
450 gpointer data)
451{
452 GConfValue *value;
453
454 value = entry->value;
455
456 hide_on_startup = gconf_value_get_bool (value);
457
458 g_debug ("EI: Hide on Startup %s", hide_on_startup ? "true" : "false");
459}
460
461static void
462run_on_startup_changed (GConfClient *gclient,
463 guint id,
464 GConfEntry *entry,
465 gpointer data)
466{
467 GConfValue *value;
468 char *home ;
469 char *command ;
470 char *desktopfile;
471 gboolean result;
472
473 value = entry->value;
474
475 run_on_startup = gconf_value_get_bool (value);
476
477 home = getenv ("HOME");
478 desktopfile = g_strdup(EVOLUTION_DESKTOP_FILE);
479
480 if (run_on_startup) {
481 command = g_strdup_printf("test -d %s/.config/autostart", home);
482 result = system(command);
483 g_free(command);
484 if (result) {
485 command = g_strdup_printf("mkdir -p %s/.config/autostart",home);
486 result = system(command);
487 g_free(command);
488
489 }
490
491 command = g_strdup_printf("cp %s %s/.config/autostart/",desktopfile,home);
492 result = system(command);
493 g_free(command);
494
495 if (result)
496 g_debug("EI: could not create file in autostart!");
497 } else {
498 command = g_strdup_printf("rm %s/.config/autostart/evolution.desktop",home);
499 result = system(command);
500 g_free(command);
501 }
502
503 g_free(desktopfile);
504 g_debug ("EI: run_on_startup %s", run_on_startup ? "true" : "false");
505
506}
507
508static void
432show_new_in_panel_changed (GConfClient *gclient, 509show_new_in_panel_changed (GConfClient *gclient,
433 guint id,510 guint id,
434 GConfEntry *entry,511 GConfEntry *entry,
@@ -641,6 +718,7 @@
641 }718 }
642 else719 else
643 {720 {
721<<<<<<< TREE
644 if (data.url && g_str_has_prefix (data.url, "pop:"))722 if (data.url && g_str_has_prefix (data.url, "pop:"))
645 {723 {
646 indicator = create_indicator ("pop:",724 indicator = create_indicator ("pop:",
@@ -651,6 +729,18 @@
651 {729 {
652 indicator = create_indicator (data.url, data.name);730 indicator = create_indicator (data.url, data.name);
653 }731 }
732=======
733 if (data.url && g_str_has_prefix (data.url, "pop:"))
734 {
735 indicator = create_indicator ("pop:",
736 g_dgettext (EVO_I18N_DOMAIN,
737 "Inbox"));
738 }
739 else
740 {
741 indicator = create_indicator (data.url, data.name);
742 }
743>>>>>>> MERGE-SOURCE
654 indicators = g_slist_append (indicators, indicator);744 indicators = g_slist_append (indicators, indicator);
655745
656 g_debug ("EI: New account: %s (%s)", data.name, data.url);746 g_debug ("EI: New account: %s (%s)", data.name, data.url);
@@ -792,12 +882,70 @@
792 show_count_id = gconf_client_notify_add (client, SHOW_NEW_IN_PANEL, 882 show_count_id = gconf_client_notify_add (client, SHOW_NEW_IN_PANEL,
793 show_new_in_panel_changed, NULL, NULL, NULL);883 show_new_in_panel_changed, NULL, NULL, NULL);
794884
885 minimize_to_applet = gconf_client_get_bool (client,
886 MINIMIZE_TO_APPLET,
887 NULL);
888 minimize_to_applet_id = gconf_client_notify_add (client, MINIMIZE_TO_APPLET,
889 minimize_to_applet_changed, NULL, NULL, NULL);
890
891 run_on_startup = gconf_client_get_bool (client,
892 RUN_ON_STARTUP,
893 NULL);
894 run_on_startup_id = gconf_client_notify_add (client, RUN_ON_STARTUP,
895 run_on_startup_changed, NULL, NULL, NULL);
896
897 hide_on_startup = gconf_client_get_bool (client,
898 HIDE_ON_STARTUP,
899 NULL);
900 hide_on_startup_id = gconf_client_notify_add (client, HIDE_ON_STARTUP,
901 hide_on_startup_changed, NULL, NULL, NULL);
902
795 gconf_client_add_dir (client, ACCOUNT_DIR,GCONF_CLIENT_PRELOAD_NONE, NULL);903 gconf_client_add_dir (client, ACCOUNT_DIR,GCONF_CLIENT_PRELOAD_NONE, NULL);
796 update_accounts ();904 update_accounts ();
797 accounts_id = gconf_client_notify_add (client, ACCOUNTS,905 accounts_id = gconf_client_notify_add (client, ACCOUNTS,
798 on_accounts_changed, NULL,906 on_accounts_changed, NULL,
799 NULL, NULL);907 NULL, NULL);
800908
909 EShell *shell = e_shell_get_default ();
910
911 /* If we are minimizing to the applet, listen for created windows */
912 if (shell && minimize_to_applet)
913 {
914 g_signal_connect (
915 shell, "window-created",
916 G_CALLBACK (window_created_event), NULL);
917
918 /* Since a window was probably already created before we started
919 we should find that window and connect up our custom delete event */
920
921 GList *list = e_shell_get_watched_windows(shell);
922 EShellWindow *window;
923
924 while (list != NULL) {
925 window = list->data;
926 if (E_IS_SHELL_WINDOW(window)) {
927
928 /* block evolutions built in handlers from acting */
929 g_signal_handlers_block_matched(window, G_SIGNAL_MATCH_DATA,
930 0, 0, NULL, NULL, shell);
931
932 /* add our handler for the window deleted signal */
933 g_signal_connect_swapped (
934 window, "delete-event",
935 G_CALLBACK (window_delete_event), shell);
936
937 /* If we are asking evolution to hide its shell windows on
938 then do that*/
939 if (hide_on_startup) {
940 gtk_window_iconify (GTK_WINDOW(window));
941 gtk_widget_hide (GTK_WIDGET(window));
942 }
943
944 }
945 list = g_list_next(list);
946 }
947 }
948
801 if (show_count)949 if (show_count)
802 {950 {
803 indicate_server_show (server);951 indicate_server_show (server);
@@ -815,6 +963,9 @@
815 gconf_client_notify_remove (client, play_sound_id);963 gconf_client_notify_remove (client, play_sound_id);
816 gconf_client_notify_remove (client, show_bubble_id);964 gconf_client_notify_remove (client, show_bubble_id);
817 gconf_client_notify_remove (client, show_count_id);965 gconf_client_notify_remove (client, show_count_id);
966 gconf_client_notify_remove (client, minimize_to_applet_id);
967 gconf_client_notify_remove (client, run_on_startup_id);
968 gconf_client_notify_remove (client, hide_on_startup_id);
818 gconf_client_notify_remove (client, accounts_id);969 gconf_client_notify_remove (client, accounts_id);
819970
820 g_object_unref (client);971 g_object_unref (client);
@@ -839,6 +990,54 @@
839 return 0;990 return 0;
840}991}
841992
993gboolean
994window_created_event (EShell *shell, GtkWindow *window)
995{
996
997 if (E_IS_SHELL_WINDOW(window)) {
998
999 /* block evolutions built in handlers from acting */
1000 g_signal_handlers_block_matched(window, G_SIGNAL_MATCH_DATA,
1001 0, 0, NULL, NULL, shell);
1002
1003 /* add our handler for the window deleted signal */
1004 g_signal_connect_swapped (
1005 window, "delete-event",
1006 G_CALLBACK (window_delete_event), shell);
1007
1008 }
1009}
1010
1011gboolean
1012window_delete_event (EShell *shell, GtkWindow *window)
1013{
1014 /* If there is more than one window open then we can safely close this one.
1015 If there is only one then hide it instead of deleteing. */
1016
1017 gboolean at_least_one = FALSE;
1018 GList *list = e_shell_get_watched_windows (shell);
1019 EShellWindow *shell_window;
1020
1021 /* Check if there is more than one shell window in the list */
1022 while (list != NULL) {
1023
1024 if (E_IS_SHELL_WINDOW (list->data) && at_least_one) {
1025 return FALSE;
1026 } else if (E_IS_SHELL_WINDOW (list->data)) {
1027 at_least_one = TRUE;
1028 shell_window = list->data;
1029 }
1030 list = g_list_next (list);
1031 }
1032
1033 /* If there wasn't more than one then hide the window.*/
1034 gtk_window_iconify (GTK_WINDOW(shell_window));
1035 gtk_widget_hide (GTK_WIDGET(shell_window));
1036
1037 return TRUE;
1038
1039}
1040
842GtkWidget *1041GtkWidget *
843e_plugin_lib_get_configure_widget (EPlugin *ep)1042e_plugin_lib_get_configure_widget (EPlugin *ep)
844{1043{
@@ -876,6 +1075,27 @@
876 gtk_toggle_button_get_active (button), NULL);1075 gtk_toggle_button_get_active (button), NULL);
877}1076}
8781077
1078static void
1079on_minimize_to_applet_toggled (GtkToggleButton *button, gpointer null)
1080{
1081 gconf_client_set_bool (client, MINIMIZE_TO_APPLET,
1082 gtk_toggle_button_get_active (button), NULL);
1083}
1084
1085static void
1086on_run_on_startup_toggled (GtkToggleButton *button, gpointer null)
1087{
1088 gconf_client_set_bool (client, RUN_ON_STARTUP,
1089 gtk_toggle_button_get_active (button), NULL);
1090}
1091
1092static void
1093on_hide_on_startup_toggled (GtkToggleButton *button, gpointer null)
1094{
1095 gconf_client_set_bool (client, HIDE_ON_STARTUP,
1096 gtk_toggle_button_get_active (button), NULL);
1097}
1098
879GtkWidget *1099GtkWidget *
880org_gnome_get_prefs (EPlugin *ep, EConfigHookItemFactoryData *data)1100org_gnome_get_prefs (EPlugin *ep, EConfigHookItemFactoryData *data)
881{1101{
@@ -976,6 +1196,82 @@
976 return check;1196 return check;
977}1197}
9781198
1199GtkWidget *
1200get_cfg_widget (void)
1201{
1202 GtkWidget *vbox, *box, *check;
1203 GtkWidget *label1, *label2, *label3, *combo;
1204 const gchar *markup = "<b>%s</b>";
1205 gchar *str1;
1206 gchar *str2;
1207
1208 vbox = gtk_vbox_new (FALSE, 6);
1209
1210 box = gtk_hbox_new (FALSE, 0);
1211
1212 check = gtk_check_button_new_with_mnemonic (_("Keep _Evolution running in the background"));
1213 g_object_set (check, "active", minimize_to_applet, NULL);
1214 gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
1215 g_signal_connect (check, "toggled", G_CALLBACK (on_minimize_to_applet_toggled), NULL);
1216
1217 check = gtk_check_button_new_with_mnemonic (_("_Run Evolution when computer starts"));
1218 g_object_set (check, "active", run_on_startup, NULL);
1219 gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
1220 g_signal_connect (check, "toggled", G_CALLBACK (on_run_on_startup_toggled), NULL);
1221
1222 check = gtk_check_button_new_with_mnemonic (_("_Hide Evolution on startup"));
1223 g_object_set (check, "active", hide_on_startup, NULL);
1224 gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
1225 g_signal_connect (check, "toggled", G_CALLBACK (on_hide_on_startup_toggled), NULL);
1226
1227 label1 = gtk_label_new (" ");
1228 str1 = g_strdup_printf (markup, _("When new mail arri_ves in"));
1229 gtk_label_set_markup_with_mnemonic (GTK_LABEL (label1), str1);
1230 g_free (str1);
1231
1232 label2 = gtk_label_new (" ");
1233
1234 combo = gtk_combo_box_new_text ();
1235 gtk_combo_box_append_text (GTK_COMBO_BOX (combo),
1236 n_accounts > 1 ? _("any Inbox") : _("Inbox"));
1237 gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("any Folder"));
1238 gtk_combo_box_set_active (GTK_COMBO_BOX (combo),
1239 only_inbox ? 0 : 1);
1240 g_signal_connect (combo, "changed", G_CALLBACK (on_combo_changed), NULL);
1241
1242 label3 = gtk_label_new (":");
1243 /* i18n: ':' is used in the end of the above line (When New Mail Arrives:)*/
1244 str2 = g_strdup_printf (markup, _(":"));
1245 gtk_label_set_markup (GTK_LABEL (label3), str2);
1246 g_free (str2);
1247
1248 gtk_box_pack_start (GTK_BOX (box), label1, FALSE, FALSE, 0);
1249 gtk_box_pack_start (GTK_BOX (box), label2, FALSE, FALSE, 0);
1250 gtk_box_pack_start (GTK_BOX (box), combo, FALSE, FALSE, 0);
1251 gtk_box_pack_start (GTK_BOX (box), label3, FALSE, FALSE, 0);
1252
1253 gtk_box_pack_start (GTK_BOX (vbox), box, FALSE, FALSE, 0);
1254
1255 check = gtk_check_button_new_with_mnemonic (_("Pla_y a sound"));
1256 g_object_set (check, "active", play_sound, NULL);
1257 gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
1258 g_signal_connect (check, "toggled", G_CALLBACK (on_sound_toggled), NULL);
1259
1260 check = gtk_check_button_new_with_mnemonic (_("_Display a notification"));
1261 g_object_set (check, "active", show_bubble, NULL);
1262 gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
1263 g_signal_connect (check, "toggled", G_CALLBACK (on_bubble_toggled), NULL);
1264
1265 check = gtk_check_button_new_with_mnemonic (_("_Indicate new messages in the panel"));
1266 g_object_set (check, "active", show_count, NULL);
1267 gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
1268 g_signal_connect (check, "toggled", G_CALLBACK (on_show_panel_toggled), NULL);
1269
1270 gtk_widget_show_all (vbox);
1271
1272 return vbox;
1273}
1274
979/*1275/*
980 *1276 *
981 * SHOW EVOLUTION CODE1277 * SHOW EVOLUTION CODE

Subscribers

People subscribed via source and target branches