Philipp Hörist pushed to branch gajim_1.1 at gajim / gajim
Commits:
366b3df2 by Philipp Hörist at 2019-03-25T23:03:36Z
Remove reimport
- - - - -
1 changed file:
- gajim/plugins/gui.py
Changes:
=====================================
gajim/plugins/gui.py
=====================================
@@ -42,7 +42,6 @@ from gajim.common.helpers import launch_browser_mailer
from gajim.plugins.helpers import log_calls
from gajim.plugins.helpers import GajimPluginActivateException
from gajim.plugins.plugins_i18n import _
-from gajim.common.exceptions import PluginsystemError
@unique
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/366b3df235cdb1cdd54dc909ea5c2900af…
--
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/366b3df235cdb1cdd54dc909ea5c2900af…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch master at gajim / gajim
Commits:
a9efde13 by Philipp Hörist at 2019-03-25T21:20:19Z
Refactor saving roster position
- Dont save roster position on Wayland
- - - - -
7a5d791b by Philipp Hörist at 2019-03-25T21:20:19Z
Refactor restoring roster position
- - - - -
4 changed files:
- gajim/common/helpers.py
- gajim/gtk/statusicon.py
- gajim/gtk/util.py
- gajim/roster_window.py
Changes:
=====================================
gajim/common/helpers.py
=====================================
@@ -51,12 +51,14 @@ import nbxmpp
from nbxmpp.stringprepare import nameprep
import precis_i18n.codec # pylint: disable=unused-import
+from gajim.common import app
from gajim.common import caps_cache
from gajim.common import configpaths
from gajim.common.i18n import Q_
from gajim.common.i18n import _
from gajim.common.i18n import ngettext
from gajim.common.const import ShowConstant
+from gajim.common.const import Display
log = logging.getLogger('gajim.c.helpers')
@@ -1508,3 +1510,14 @@ class AdditionalDataDict(collections.UserDict):
del _dict[key]
except KeyError:
return
+
+
+def save_roster_position(window):
+ if not app.config.get('save-roster-position'):
+ return
+ if app.is_display(Display.WAYLAND):
+ return
+ x_pos, y_pos = window.get_position()
+ log.debug('Save roster position: %s %s', x_pos, y_pos)
+ app.config.set('roster_x-position', x_pos)
+ app.config.set('roster_y-position', y_pos)
=====================================
gajim/gtk/statusicon.py
=====================================
@@ -28,10 +28,11 @@ from gajim import dialogs
from gajim.common import app
from gajim.common import helpers
from gajim.common.i18n import _
+from gajim.common.helpers import save_roster_position
from gajim.gtk.util import get_builder
from gajim.gtk.util import get_icon_name
-from gajim.gtk.util import move_window
+from gajim.gtk.util import restore_roster_position
from gajim.gtk.single_message import SingleMessageWindow
from gajim.gtk.tooltips import NotificationAreaTooltip
@@ -375,18 +376,11 @@ class StatusIcon:
# No pending events, so toggle visible/hidden for roster window
if win.get_property('visible'):
if win.get_property('has-toplevel-focus') or os.name == 'nt':
- if app.config.get('save-roster-position'):
- x, y = win.get_position()
- app.config.set('roster_x-position', x)
- app.config.set('roster_y-position', y)
+ save_roster_position(win)
win.hide() # else we hide it from VD that was visible in
else:
- if not win.get_property('visible'):
- win.show_all()
- if app.config.get('save-roster-position'):
- move_window(win,
- app.config.get('roster_x-position'),
- app.config.get('roster_y-position'))
+ win.show_all()
+ restore_roster_position(win)
if not app.config.get('roster_window_skip_taskbar'):
win.set_property('skip-taskbar-hint', False)
win.present_with_time(Gtk.get_current_event_time())
@@ -398,11 +392,9 @@ class StatusIcon:
if not event:
return
win = app.interface.roster.window
- if not win.get_property('visible') and app.config.get(
- 'save-roster-position'):
- move_window(win,
- app.config.get('roster_x-position'),
- app.config.get('roster_y-position'))
+ if not win.get_property('visible'):
+ # Needed if we are in one window mode
+ restore_roster_position(win)
app.interface.handle_event(account, jid, event.type_)
def on_middle_click(self):
=====================================
gajim/gtk/util.py
=====================================
@@ -40,6 +40,7 @@ from gajim.common.i18n import _
from gajim.common.const import MOODS
from gajim.common.const import ACTIVITIES
from gajim.common.const import LOCATION_DATA
+from gajim.common.const import Display
from gajim.gtk.const import GajimIconSet
@@ -308,6 +309,16 @@ def move_window(window: Gtk.Window, pos_x: int, pos_y: int) -> None:
window.move(pos_x, pos_y)
+def restore_roster_position(window):
+ if not app.config.get('save-roster-position'):
+ return
+ if app.is_display(Display.WAYLAND):
+ return
+ move_window(window,
+ app.config.get('roster_x-position'),
+ app.config.get('roster_y-position'))
+
+
def get_completion_liststore(entry: Gtk.Entry) -> Gtk.ListStore:
"""
Create a completion model for entry widget completion list consists of
=====================================
gajim/roster_window.py
=====================================
@@ -56,6 +56,7 @@ from gajim.common import helpers
from gajim.common import idle
from gajim.common.exceptions import GajimGeneralException
from gajim.common import i18n
+from gajim.common.helpers import save_roster_position
from gajim.common.i18n import _
from gajim.common.const import PEPEventType, AvatarSize, StyleAttr
from gajim.common.dbus import location
@@ -83,7 +84,7 @@ from gajim.gtk.tooltips import RosterTooltip
from gajim.gtk.adhoc_commands import CommandWindow
from gajim.gtk.util import get_icon_name
from gajim.gtk.util import resize_window
-from gajim.gtk.util import move_window
+from gajim.gtk.util import restore_roster_position
from gajim.gtk.util import get_metacontact_surface
from gajim.gtk.util import get_builder
from gajim.gtk.util import set_urgency_hint
@@ -2365,11 +2366,7 @@ class RosterWindow:
if not app.config.get('quit_on_roster_x_button') and (
(app.interface.systray_enabled and app.config.get('trayicon') != \
'on_event') or app.config.get('allow_hide_roster')):
- if app.config.get('save-roster-position'):
- x, y = self.window.get_position()
- log.debug('Save roster position (get_position): %s %s', x, y)
- app.config.set('roster_x-position', x)
- app.config.set('roster_y-position', y)
+ save_roster_position(self.window)
if os.name == 'nt' or app.config.get('hide_on_roster_x_button'):
self.window.hide()
else:
@@ -2394,11 +2391,7 @@ class RosterWindow:
# in case show_roster_on_start is False and roster is never shown
# window.window is None
if self.window.get_window() is not None:
- if app.config.get('save-roster-position'):
- x, y = self.window.get_window().get_root_origin()
- log.debug('Save roster position (get_root_origin): %s %s', x, y)
- app.config.set('roster_x-position', x)
- app.config.set('roster_y-position', y)
+ save_roster_position(self.window)
width, height = self.window.get_size()
app.config.set('roster_width', width)
app.config.set('roster_height', height)
@@ -5625,10 +5618,7 @@ class RosterWindow:
resize_window(self.window,
app.config.get('roster_width'),
app.config.get('roster_height'))
- if app.config.get('save-roster-position'):
- move_window(self.window,
- app.config.get('roster_x-position'),
- app.config.get('roster_y-position'))
+ restore_roster_position(self.window)
# Remove contact from roster when last event opened
# { (contact, account): { backend: boolean }
View it on GitLab: https://dev.gajim.org/gajim/gajim/compare/b6e7f5c6d2ecfa6be6044e2bec58ed93f…
--
View it on GitLab: https://dev.gajim.org/gajim/gajim/compare/b6e7f5c6d2ecfa6be6044e2bec58ed93f…
You're receiving this email because of your account on dev.gajim.org.