Replace is_on_mobile_screen() with have_touchscreen()

This commit is contained in:
Teemu Ikonen 2022-11-03 15:03:52 +02:00
parent 46dbc80d8b
commit 236a4c9966
4 changed files with 11 additions and 18 deletions

View File

@ -32,7 +32,7 @@ from gpodder import util, vimeo, youtube
from gpodder.gtkui.desktopfile import PlayerListModel
from gpodder.gtkui.draw import get_background_color
from gpodder.gtkui.interface.common import (BuilderWidget, TreeViewHelper,
is_on_mobile_screen,
have_touchscreen,
show_message_dialog)
from gpodder.gtkui.interface.configeditor import gPodderConfigEditor
@ -337,7 +337,7 @@ class gPodderPreferences(BuilderWidget):
self.flap_show_image.set_from_file(os.path.join(
gpodder.icons_folder, 'actions', 'view-sidebar-start-symbolic.svg'))
self.prefs_stack.connect("notify::visible-child", self.on_prefs_sidebar_set_focus_child)
if is_on_mobile_screen(self.main_window):
if have_touchscreen():
self.prefs_scrolled_window.connect(
'edge-overshot', self.on_prefs_scrolled_window_edge_overshot)
self.prefs_flap.set_reveal_flap(True)

View File

@ -50,18 +50,11 @@ def show_message_dialog(parent, message, title=None):
dlg.destroy()
def is_on_mobile_screen(widget):
"""Return True if widget is on a small screen."""
w = widget
while not w.get_realized():
w = w.get_parent()
window = w.get_window()
if window is None:
return False
monitor = Gdk.Display.get_default().get_monitor_at_window(window)
return monitor.get_width_mm() < 120
def have_touchscreen():
"""Return True if the default seat of default display has touch capability
"""
return bool(Gdk.Display.get_default_seat(
Gdk.Display.get_default()).get_capabilities() & Gdk.SeatCapabilities.TOUCH)
class BuilderWidget(GtkBuilderWidget):

View File

@ -52,7 +52,7 @@ from .draw import (cake_size_from_widget, draw_cake_pixbuf,
draw_iconcell_scale, draw_text_box_centered)
from .interface.addpodcast import gPodderAddPodcast
from .interface.common import (BuilderWidget, Dummy, ExtensionMenuHelper,
TreeViewHelper, is_on_mobile_screen)
TreeViewHelper, have_touchscreen)
from .interface.progress import ProgressIndicator
from .interface.searchtree import SearchTreeBar
from .model import EpisodeListModel, PodcastChannelProxy, PodcastListModel
@ -304,7 +304,7 @@ class gPodder(BuilderWidget, dbus.service.Object):
self.treeChannels.grab_focus()
# Swipe up to go back hack for episodes leaflet page
if is_on_mobile_screen(self.main_window):
if have_touchscreen():
self.episodes_scrolled_window.connect(
'edge-overshot', self.on_episodes_scrolled_window_edge_overshot)
self.channels_scrolled_window.connect(

View File

@ -25,7 +25,7 @@ import gpodder
from gpodder import util
from gpodder.gtkui.draw import (draw_text_box_centered, get_background_color,
get_foreground_color)
from gpodder.gtkui.interface.common import is_on_mobile_screen
from gpodder.gtkui.interface.common import have_touchscreen
# from gpodder.gtkui.draw import investigate_widget_colors
@ -72,7 +72,7 @@ class gPodderShownotes:
# Swipe up to go back hack
self.navigable = self.shownotes_pane.get_parent().get_parent() # FIXME
if (isinstance(self.navigable, (Handy.Deck, Handy.Leaflet))
and is_on_mobile_screen(self.navigable)):
and have_touchscreen()):
self.scrolled_window.connect(
'edge-overshot', self.on_scrolled_window_edge_overshot)