From 7a2f1b1be0e6104b6f87fd4011f852c0ffeab8a0 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Orsini Date: Thu, 16 Feb 2017 22:05:50 +0100 Subject: [PATCH] patch request: https://bugs.launchpad.net/psensor/+bug/1642034 --- po/Makefile.in | 403 ------------------------------------------- src/glade/psensor-pref.glade | 135 ++++++++------- src/main.c | 27 ++- src/ui.c | 37 ++-- src/ui.h | 10 -- src/ui_pref.c | 2 - 6 files changed, 96 insertions(+), 518 deletions(-) delete mode 100644 po/Makefile.in diff --git a/po/Makefile.in b/po/Makefile.in deleted file mode 100644 index 881a1fe..0000000 --- a/po/Makefile.in +++ /dev/null @@ -1,403 +0,0 @@ -# Makefile for PO directory in any package using GNU gettext. -# Copyright (C) 1995-1997, 2000-2006 by Ulrich Drepper -# -# This file can be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU General Public -# License but which still want to provide support for the GNU gettext -# functionality. -# Please note that the actual code of GNU gettext is covered by the GNU -# General Public License and is *not* in the public domain. -# -# Origin: gettext-0.16 - -PACKAGE = psensor -VERSION = 1.2.0 -PACKAGE_BUGREPORT = jeanfi@gmail.com - -SHELL = /bin/sh - - -srcdir = . -top_srcdir = .. - - -prefix = /usr/local -exec_prefix = ${prefix} -datarootdir = ${prefix}/share -datadir = ${datarootdir} -localedir = ${datarootdir}/locale -gettextsrcdir = $(datadir)/gettext/po - -INSTALL = /usr/bin/install -c -INSTALL_DATA = ${INSTALL} -m 644 - -# We use $(mkdir_p). -# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as -# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, -# ${SHELL} /home/jporsini/work/psensor/install-sh does not start with $(SHELL), so we add it. -# In automake >= 1.10, $(MKDIR_P) is derived from ${MKDIR_P}, which is defined -# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake -# versions, $(mkinstalldirs) and $(install_sh) are unused. -mkinstalldirs = $(SHELL) ${SHELL} /home/jporsini/work/psensor/install-sh -d -install_sh = $(SHELL) ${SHELL} /home/jporsini/work/psensor/install-sh -MKDIR_P = /bin/mkdir -p -mkdir_p = $(MKDIR_P) - -GMSGFMT_ = /usr/bin/msgfmt -GMSGFMT_no = /usr/bin/msgfmt -GMSGFMT_yes = /usr/bin/msgfmt -GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) -MSGFMT_ = /usr/bin/msgfmt -MSGFMT_no = /usr/bin/msgfmt -MSGFMT_yes = /usr/bin/msgfmt -MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) -XGETTEXT_ = /usr/bin/xgettext -XGETTEXT_no = /usr/bin/xgettext -XGETTEXT_yes = /usr/bin/xgettext -XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) -MSGMERGE = msgmerge -MSGMERGE_UPDATE = /usr/bin/msgmerge --update -MSGINIT = msginit -MSGCONV = msgconv -MSGFILTER = msgfilter - -POFILES = @POFILES@ -GMOFILES = @GMOFILES@ -UPDATEPOFILES = @UPDATEPOFILES@ -DUMMYPOFILES = @DUMMYPOFILES@ -DISTFILES.common = Makefile.in.in remove-potcdate.sin \ -$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) -DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ -$(POFILES) $(GMOFILES) \ -$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) - -POTFILES = \ - -CATALOGS = @CATALOGS@ - -# Makevars gets inserted here. (Don't remove this line!) - -.SUFFIXES: -.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update - -.po.mo: - @echo "$(MSGFMT) -c -o $@ $<"; \ - $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ - -.po.gmo: - @lang=`echo $* | sed -e 's,.*/,,'`; \ - test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \ - cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo - -.sin.sed: - sed -e '/^#/d' $< > t-$@ - mv t-$@ $@ - - -all: all-yes - -all-yes: stamp-po -all-no: - -# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no -# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because -# we don't want to bother translators with empty POT files). We assume that -# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. -# In this case, stamp-po is a nop (i.e. a phony target). - -# stamp-po is a timestamp denoting the last time at which the CATALOGS have -# been loosely updated. Its purpose is that when a developer or translator -# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, -# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent -# invocations of "make" will do nothing. This timestamp would not be necessary -# if updating the $(CATALOGS) would always touch them; however, the rule for -# $(POFILES) has been designed to not touch files that don't need to be -# changed. -stamp-po: $(srcdir)/$(DOMAIN).pot - test ! -f $(srcdir)/$(DOMAIN).pot || \ - test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) - @test ! -f $(srcdir)/$(DOMAIN).pot || { \ - echo "touch stamp-po" && \ - echo timestamp > stamp-poT && \ - mv stamp-poT stamp-po; \ - } - -# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', -# otherwise packages like GCC can not be built if only parts of the source -# have been downloaded. - -# This target rebuilds $(DOMAIN).pot; it is an expensive operation. -# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. -$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed - if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ - msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ - else \ - msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ - fi; \ - $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ - --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ - --files-from=$(srcdir)/POTFILES.in \ - --copyright-holder='$(COPYRIGHT_HOLDER)' \ - --msgid-bugs-address="$$msgid_bugs_address" - test ! -f $(DOMAIN).po || { \ - if test -f $(srcdir)/$(DOMAIN).pot; then \ - sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ - sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ - if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ - rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ - else \ - rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ - mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ - fi; \ - else \ - mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ - fi; \ - } - -# This rule has no dependencies: we don't need to update $(DOMAIN).pot at -# every "make" invocation, only create it when it is missing. -# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. -$(srcdir)/$(DOMAIN).pot: - $(MAKE) $(DOMAIN).pot-update - -# This target rebuilds a PO file if $(DOMAIN).pot has changed. -# Note that a PO file is not touched if it doesn't need to be changed. -$(POFILES): $(srcdir)/$(DOMAIN).pot - @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ - if test -f "$(srcdir)/$${lang}.po"; then \ - test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \ - cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \ - else \ - $(MAKE) $${lang}.po-create; \ - fi - - -install: install-exec install-data -install-exec: -install-data: install-data-yes - if test "$(PACKAGE)" = "gettext-tools"; then \ - $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ - for file in $(DISTFILES.common) Makevars.template; do \ - $(INSTALL_DATA) $(srcdir)/$$file \ - $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - for file in Makevars; do \ - rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - else \ - : ; \ - fi -install-data-no: all -install-data-yes: all - $(mkdir_p) $(DESTDIR)$(datadir) - @catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - dir=$(localedir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $(DESTDIR)$$dir; \ - if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ - $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ - echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ - for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ - if test -n "$$lc"; then \ - if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ - link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ - mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ - for file in *; do \ - if test -f $$file; then \ - ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ - fi; \ - done); \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - else \ - if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ - :; \ - else \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - fi; \ - fi; \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ - ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ - cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ - fi; \ - done; \ - done - -install-strip: install - -installdirs: installdirs-exec installdirs-data -installdirs-exec: -installdirs-data: installdirs-data-yes - if test "$(PACKAGE)" = "gettext-tools"; then \ - $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ - else \ - : ; \ - fi -installdirs-data-no: -installdirs-data-yes: - $(mkdir_p) $(DESTDIR)$(datadir) - @catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - dir=$(localedir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $(DESTDIR)$$dir; \ - for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ - if test -n "$$lc"; then \ - if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ - link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ - mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ - for file in *; do \ - if test -f $$file; then \ - ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ - fi; \ - done); \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - else \ - if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ - :; \ - else \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - fi; \ - fi; \ - fi; \ - done; \ - done - -# Define this as empty until I found a useful application. -installcheck: - -uninstall: uninstall-exec uninstall-data -uninstall-exec: -uninstall-data: uninstall-data-yes - if test "$(PACKAGE)" = "gettext-tools"; then \ - for file in $(DISTFILES.common) Makevars.template; do \ - rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - else \ - : ; \ - fi -uninstall-data-no: -uninstall-data-yes: - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - done; \ - done - -check: all - -info dvi ps pdf html tags TAGS ctags CTAGS ID: - -mostlyclean: - rm -f remove-potcdate.sed - rm -f stamp-poT - rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po - rm -fr *.o - -clean: mostlyclean - -distclean: clean - rm -f Makefile Makefile.in POTFILES *.mo - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - rm -f stamp-po $(GMOFILES) - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: - $(MAKE) update-po - @$(MAKE) dist2 -# This is a separate target because 'update-po' must be executed before. -dist2: stamp-po $(DISTFILES) - dists="$(DISTFILES)"; \ - if test "$(PACKAGE)" = "gettext-tools"; then \ - dists="$$dists Makevars.template"; \ - fi; \ - if test -f $(srcdir)/$(DOMAIN).pot; then \ - dists="$$dists $(DOMAIN).pot stamp-po"; \ - fi; \ - if test -f $(srcdir)/ChangeLog; then \ - dists="$$dists ChangeLog"; \ - fi; \ - for i in 0 1 2 3 4 5 6 7 8 9; do \ - if test -f $(srcdir)/ChangeLog.$$i; then \ - dists="$$dists ChangeLog.$$i"; \ - fi; \ - done; \ - if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ - for file in $$dists; do \ - if test -f $$file; then \ - cp -p $$file $(distdir) || exit 1; \ - else \ - cp -p $(srcdir)/$$file $(distdir) || exit 1; \ - fi; \ - done - -update-po: Makefile - $(MAKE) $(DOMAIN).pot-update - test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) - $(MAKE) update-gmo - -# General rule for creating PO files. - -.nop.po-create: - @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ - echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ - exit 1 - -# General rule for updating PO files. - -.nop.po-update: - @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ - if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ - tmpdir=`pwd`; \ - echo "$$lang:"; \ - test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ - cd $(srcdir); \ - if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \ - if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ - rm -f $$tmpdir/$$lang.new.po; \ - else \ - if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ - :; \ - else \ - echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - exit 1; \ - fi; \ - fi; \ - else \ - echo "msgmerge for $$lang.po failed!" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi - -$(DUMMYPOFILES): - -update-gmo: Makefile $(GMOFILES) - @: - -Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ - cd $(top_builddir) \ - && $(SHELL) ./config.status $(subdir)/$@.in po-directories - -force: - -# Tell versions [3.59,3.63) of GNU make not to export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/src/glade/psensor-pref.glade b/src/glade/psensor-pref.glade index 4c76882..fca3dc4 100644 --- a/src/glade/psensor-pref.glade +++ b/src/glade/psensor-pref.glade @@ -1,7 +1,7 @@ - + 1 65535 @@ -137,7 +137,7 @@ 0 - 0 + 3 2 @@ -157,7 +157,7 @@ 0 - 1 + 2 2 @@ -177,28 +177,7 @@ 0 - 2 - 2 - - - - - Enable Unity Launcher counter - True - True - False - Psensor has not been build with Unity Launcher support - 4 - 4 - 4 - 4 - 0 - True - - - - 0 - 3 + 4 2 @@ -219,7 +198,7 @@ 1 - 4 + 5 @@ -243,7 +222,7 @@ 1 - 5 + 6 @@ -254,12 +233,12 @@ 4 4 4 - 0 Temperature unit: + 0 0 - 4 + 5 2 @@ -271,12 +250,52 @@ 4 4 4 - 0 Position of sensors table: + 0 0 - 5 + 6 + + + + + Enable Unity Launcher counter + True + True + False + Psensor has not been build with Unity Launcher support + 4 + 4 + 4 + 4 + 0 + True + + + + 0 + 0 + 2 + + + + + Keep window position + True + True + False + 4 + 4 + 4 + 4 + 0 + True + + + 0 + 1 + 2 @@ -340,31 +359,13 @@ 1 - - - Restore window position and size - True - True - False - 4 - 4 - 4 - 4 - 0 - True - - - 0 - 2 - - 1 - + True False 4 @@ -412,8 +413,8 @@ 4 4 4 - 0 Foreground: + 0 0 @@ -428,8 +429,8 @@ 4 4 4 - 0 Background: + 0 0 @@ -460,8 +461,8 @@ 4 4 4 - 0 Background opacity: + 0 0 @@ -476,8 +477,8 @@ 4 8 4 - 0 Colors + 0 @@ -496,8 +497,8 @@ 4 4 4 - 0 Monitoring duration: + 0 0 @@ -512,8 +513,8 @@ 4 4 4 - 0 Update interval: + 0 0 @@ -528,8 +529,8 @@ 4 8 4 - 0 Measures + 0 @@ -554,9 +555,9 @@ True False - 0 <i>Min</i> True + 0 False @@ -581,9 +582,9 @@ True False - 0 <i>Max</i> True + 0 False @@ -724,9 +725,9 @@ 4 4 4 - 0 Curves start + 0 @@ -776,8 +777,8 @@ 4 4 4 - 0 Measure update interval: + 0 0 @@ -1105,10 +1106,10 @@ 4 8 4 - 0 4 Hard disk drive 0.01 + 0 @@ -1126,10 +1127,10 @@ 4 8 4 - 0 4 CPU and memory usage 0.01 + 0 @@ -1147,10 +1148,10 @@ 4 8 4 - 0 4 GPU with proprietary driver 0.01 + 0 @@ -1168,10 +1169,10 @@ 4 8 4 - 0 4 Motherboard, CPU and GPU 0.01 + 0 @@ -1188,10 +1189,10 @@ - + True False - Providers + Data sources 4 diff --git a/src/main.c b/src/main.c index 5686f5b..0a64f24 100644 --- a/src/main.c +++ b/src/main.c @@ -305,25 +305,20 @@ static struct option long_options[] = { {NULL, 0, NULL, 0} }; -static gboolean initial_window_show(gpointer data) +static gboolean check_ui_visible(gpointer data) { struct ui_psensor *ui; - log_debug("initial_window_show()"); - ui = (struct ui_psensor *)data; + log_debug("check_ui_visible()"); log_debug("is_status_supported: %d", is_status_supported()); log_debug("is_appindicator_supported: %d", is_appindicator_supported()); - log_debug("hide_on_startup: %d", ui->config->hide_on_startup); - if (!ui->config->hide_on_startup - || (!is_appindicator_supported() && !is_status_supported())) + if (!is_appindicator_supported() && !is_status_supported()) ui_window_show(ui); - ui_window_update(ui); - return FALSE; } @@ -535,16 +530,16 @@ int main(int argc, char **argv) gdk_notify_startup_complete(); - /* - * hack, did not find a cleaner solution. - * wait 30s to ensure that the status icon is attempted to be - * drawn before determining whether the main window must be - * show. + log_debug("hide_on_startup: %d", ui.config->hide_on_startup); + if (ui.config->hide_on_startup) + /* Wait 30s to allow attempt to show status icon or other UI, + * then check whether any UI is accessible. If not, then main + * window must be shown despite hide_on_startup preference. + * There may be a cleaner way to deal with this. */ - if (ui.config->hide_on_startup) - g_timeout_add(30000, (GSourceFunc)initial_window_show, &ui); + g_timeout_add(30000, (GSourceFunc)check_ui_visible, &ui); else - initial_window_show(&ui); + ui_window_show(&ui); /* main loop */ gtk_main(); diff --git a/src/ui.c b/src/ui.c index 041e8d8..7151409 100644 --- a/src/ui.c +++ b/src/ui.c @@ -188,14 +188,14 @@ on_delete_event_cb(GtkWidget *widget, GdkEvent *event, gpointer data) { struct ui_psensor *ui = data; - save_window_pos(ui); - log_debug("is_status_supported: %d\n", is_status_supported()); - if (is_appindicator_supported() || is_status_supported()) + if (is_appindicator_supported() || is_status_supported()) { + save_window_pos(ui); gtk_widget_hide(ui->main_window); - else + } else { ui_psensor_quit(ui); + } return TRUE; } @@ -344,10 +344,6 @@ void ui_window_create(struct ui_psensor *ui) window = GTK_WIDGET(gtk_builder_get_object(builder, "window")); gtk_builder_connect_signals(builder, ui); cfg = ui->config; - if (cfg->window_restore_enabled) - gtk_window_move(GTK_WINDOW(window), - cfg->window_x, - cfg->window_y); config_set_slog_enabled_changed_cbk(slog_enabled_cbk, ui); @@ -396,29 +392,30 @@ void ui_window_create(struct ui_psensor *ui) gtk_widget_show_all(GTK_WIDGET(w_main_box)); set_menu_bar_enabled(menu_bar); + if (cfg->window_restore_enabled) { + gtk_paned_set_position(GTK_PANED(w_sensor_box), + cfg->window_divider_pos); + gtk_window_move(GTK_WINDOW(window), + cfg->window_x, + cfg->window_y); + } + g_object_unref(G_OBJECT(builder)); log_debug("ui_window_create() ends"); } -void ui_window_update(struct ui_psensor *ui) +void ui_window_show(struct ui_psensor *ui) { struct config *cfg; - log_debug("ui_window_update()"); + log_debug("ui_window_show()"); cfg = ui->config; - if (cfg->window_restore_enabled) - gtk_paned_set_position(GTK_PANED(w_sensor_box), - cfg->window_divider_pos); - -} - -void ui_window_show(struct ui_psensor *ui) -{ - log_debug("ui_window_show()"); - ui_window_update(ui); + gtk_window_move(GTK_WINDOW(ui->main_window), + cfg->window_x, + cfg->window_y); gtk_window_present(GTK_WINDOW(ui->main_window)); } diff --git a/src/ui.h b/src/ui.h index 95135d6..426f29c 100644 --- a/src/ui.h +++ b/src/ui.h @@ -51,16 +51,6 @@ struct ui_psensor { int graph_update_interval; }; -/* - * Update the window according to the configuration. - * - * Creates or re-creates the sensor_box according to the position of - * the list of sensors in the configuration. - * - * Show or hide the menu bar. - */ -void ui_window_update(struct ui_psensor *); - /* Show the main psensor window. */ void ui_window_show(struct ui_psensor *); diff --git a/src/ui_pref.c b/src/ui_pref.c index 8d2c8ab..bbc8927 100644 --- a/src/ui_pref.c +++ b/src/ui_pref.c @@ -398,8 +398,6 @@ void ui_pref_dialog_run(struct ui_psensor *ui) pxdg_set_autostart(gtk_toggle_button_get_active(w_autostart)); pthread_mutex_unlock(&ui->sensors_mutex); - - ui_window_update(ui); } g_object_unref(G_OBJECT(builder)); gtk_widget_destroy(GTK_WIDGET(diag)); -- 2.7.4