aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog17
-rw-r--r--applets/dotdesktop/Makefile.am23
-rw-r--r--applets/mb-applet-battery.c4
-rw-r--r--po/en_GB.po2
-rw-r--r--src/panel.c15
-rw-r--r--src/panel.h17
-rw-r--r--src/panel_app.c13
-rw-r--r--src/session.c12
8 files changed, 88 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index 4e987d1..b82d908 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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__);