diff options
-rw-r--r-- | ChangeLog | 17 | ||||
-rw-r--r-- | applets/dotdesktop/Makefile.am | 23 | ||||
-rw-r--r-- | applets/mb-applet-battery.c | 4 | ||||
-rw-r--r-- | po/en_GB.po | 2 | ||||
-rw-r--r-- | src/panel.c | 15 | ||||
-rw-r--r-- | src/panel.h | 17 | ||||
-rw-r--r-- | src/panel_app.c | 13 | ||||
-rw-r--r-- | src/session.c | 12 |
8 files changed, 88 insertions, 15 deletions
@@ -1,3 +1,20 @@ +2005-01-21 mallum,,, <mallum@openedhand.com> + + * applets/dotdesktop/Makefile.am: + Only install .desktop files for installed applets + * applets/mb-applet-battery.c: (paint_callback), (button_callback): + Make less strcit ( via anon oe patch ) + * po/en_GB.po: + Remove test text + * src/panel_app.c: (panel_app_handle_configure_request): + Position/size end applet properly + ( Hopefully fixes half clock sometimes showing ) + * src/panel.c: (panel_handle_dock_request): + * src/panel.h: + * src/session.c: (session_preexisting_start_next), + (session_preexisting_win_matches_wanted): + Defer launching any non session applets while restarting a session. + 2005-01-11 mallum,,, <mallum@openedhand.com> * configure.ac: diff --git a/applets/dotdesktop/Makefile.am b/applets/dotdesktop/Makefile.am index 1deff81..1c27782 100644 --- a/applets/dotdesktop/Makefile.am +++ b/applets/dotdesktop/Makefile.am @@ -1,9 +1,22 @@ -files = \ - mb-applet-battery.desktop mb-applet-wireless.desktop \ - mb-applet-clock.desktop mb-launcher-term.desktop \ - mb-applet-menu-launcher.desktop mb-applet-system-monitor.desktop -EXTRA_DIST = $(files) +dfiles = \ + mb-applet-battery.desktop mb-applet-wireless.desktop \ + mb-applet-clock.desktop mb-launcher-term.desktop \ + mb-applet-menu-launcher.desktop mb-applet-system-monitor.desktop + +files = \ + mb-applet-clock.desktop mb-launcher-term.desktop \ + mb-applet-menu-launcher.desktop mb-applet-system-monitor.desktop + +if WANT_APM + files += mb-applet-battery.desktop +endif + +if WANT_WIFI + files += mb-applet-wireless.desktop +endif + +EXTRA_DIST = $(dfiles) desktopdir = $(datadir)/applications/ desktop_DATA = $(files) diff --git a/applets/mb-applet-battery.c b/applets/mb-applet-battery.c index 5af5b3c..b08c67e 100644 --- a/applets/mb-applet-battery.c +++ b/applets/mb-applet-battery.c @@ -277,7 +277,7 @@ paint_callback (MBTrayApp *app, Drawable drw ) if ((time_left_idx > 0) && !ac_power && apm_vals[PERCENTAGE] > 0 - && apm_vals[TIME_LEFT] > 0 + /* && apm_vals[TIME_LEFT] > 0 XXX Less strict */ && (apm_vals[TIME_LEFT] < time_left_alerts[time_left_idx])) { char tray_msg[256]; @@ -386,7 +386,7 @@ button_callback (MBTrayApp *app, int x, int y, Bool is_released ) } else { if (apm_vals[PERCENTAGE] > 0 && apm_vals[PERCENTAGE] < 100 - && apm_vals[TIME_LEFT] > 0) + /* && apm_vals[TIME_LEFT] > 0 Less strict */) { sprintf(tray_msg, _("Battery Power\nJuice %.2i %%\nTime left: %.2i mins\n"), apm_vals[PERCENTAGE], apm_vals[TIME_LEFT]); diff --git a/po/en_GB.po b/po/en_GB.po index d32bc05..0f57b0f 100644 --- a/po/en_GB.po +++ b/po/en_GB.po @@ -31,7 +31,7 @@ msgstr "" #: ../applets/mb-applet-system-monitor.c:253 #, c-format msgid "CPU: %i %%, MEMORY: %i %%\n" -msgstr "Ye Old CPU: %i %%, MEMORY: %i %%\n" +msgstr "CPU: %i %%, MEMORY: %i %%\n" #: ../applets/mb-applet-system-monitor.c:324 msgid "CPU/Mem Monitor" diff --git a/src/panel.c b/src/panel.c index c43da93..6c2daed 100644 --- a/src/panel.c +++ b/src/panel.c @@ -824,10 +824,19 @@ panel_handle_dock_request(MBPanel *panel, Window win) util_get_command_str_from_win(panel, win, &cmd_str); /* cmd_str freed l8r */ - if (session_preexisting_win_matches_wanted(panel, win, cmd_str)) + if (session_preexisting_restarting(panel)) { - app_origin_dist = panel->session_init_offset; - session_preexisting_clear_current(panel); + if (session_preexisting_win_matches_wanted(panel, win, cmd_str)) + { + app_origin_dist = panel->session_init_offset; + session_preexisting_clear_current(panel); + } + else + { + DBG("%s() defering winid %li ( %s) \n", __func__, win, cmd_str ); + panel->session_defered_wins[panel->n_session_defered_wins++] = win; + return; + } } new_papp = panel_app_new(panel, win, cmd_str); diff --git a/src/panel.h b/src/panel.h index e7f9081..20f6be6 100644 --- a/src/panel.h +++ b/src/panel.h @@ -112,6 +112,8 @@ #define DEFAULT_COLOR_SPEC "#e2e2de" /* Same as gnome ? */ #define MB_MSG_FONT "Sans 14px" +#define MAX_DEFERED_WINS 32 /* *very* Unlikely as much as 32 */ + enum { BG_SOLID_COLOR, BG_PIXMAP, @@ -281,10 +283,19 @@ typedef struct _panel { int click_y; Time click_time; - char *bg_trans; long root_pixmap_id; + /* Defered apps list - win ids that start while session is + * starting but *arnt* in the session, so they are docked + * after starting. + * + * XXX: should really use a list here. + */ + + Window session_defered_wins[MAX_DEFERED_WINS]; + int n_session_defered_wins; + #ifdef USE_XSETTINGS XSettingsClient *xsettings_client; #endif @@ -309,6 +320,10 @@ panel_update_client_list_prop (MBPanel *panel); void panel_reorder_apps(MBPanel *panel); +void +panel_handle_dock_request(MBPanel *panel, Window win); + + #include "panel_menu.h" #include "panel_util.h" #include "panel_app.h" diff --git a/src/panel_app.c b/src/panel_app.c index d7833ac..1e7ae91 100644 --- a/src/panel_app.c +++ b/src/panel_app.c @@ -377,20 +377,27 @@ panel_app_handle_configure_request(MBPanel *panel, XConfigureRequestEvent *ev) { if (papp == panel_app_list_get_last(panel, panel->apps_end_head)) { - DBG("%s() papp is last at end\n", __func__); + DBG("%s() papp %s is last at end\n", __func__, papp->name); panel_app_move_to(panel, papp, papp->x - (xwc.width - papp->w)); } else if (papp == panel_app_list_get_last(panel, panel->apps_start_head)) { - DBG("%s() papp is last at start\n", __func__); + DBG("%s() papp %s is last at start\n", __func__, papp->name); panel_app_move_to(panel, papp, papp->x /*+ (xwc.width - papp->w)*/); } + else if (papp == panel->apps_end_head) + { + DBG("******** %s() papp %s panel->apps_end_head ****\n", __func__, papp->name); + panel_app_move_to(panel, papp, + panel->w - panel->margin_sides - xwc.width); + panel_apps_nudge (panel, papp->next, papp->w - xwc.width); + } else { - DBG("%s() papp is nowhere special\n", __func__); + DBG("%s() papp %s is nowhere special\n", __func__, papp->name); panel_apps_nudge (panel, papp->next, xwc.width - papp->w); } papp->w = xwc.width; diff --git a/src/session.c b/src/session.c index 8262ca3..9af9890 100644 --- a/src/session.c +++ b/src/session.c @@ -174,6 +174,8 @@ session_preexisting_restarting(MBPanel *panel) Bool session_preexisting_start_next(MBPanel *panel) { + int i = 0; + if (!session_preexisting_restarting(panel)) return False; if (panel->session_entry_cur[0] == '\0' @@ -183,6 +185,15 @@ session_preexisting_start_next(MBPanel *panel) panel->session_needed_pid = util_fork_exec(panel->session_entry_cur); return True; } + + /* Nothing left in session, dock any defered */ + + DBG("%s() Now launching defered apps\n", __func__); + + for (i=0; i<panel->n_session_defered_wins; i++) + panel_handle_dock_request(panel, panel->session_defered_wins[i]); + + return False; } @@ -191,6 +202,7 @@ session_preexisting_win_matches_wanted(MBPanel *panel, Window win, char *win_cmd) { pid_t win_pid = 0; + if (!session_preexisting_restarting(panel)) return False; DBG("%s() called\n", __func__); |