Skip to content

Commit

Permalink
Revert "cs_themes: Restrain picture button heights."
Browse files Browse the repository at this point in the history
This reverts commit 8a1d1e6.

This causes a regression with the button width for many image
sizes. The original issue was minor, and was more of an abuse
of what a 'thumbnail' is intended to be, so go back to that.
  • Loading branch information
mtwebster committed Jul 8, 2024
1 parent cafdf9a commit 86c071c
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,11 @@ def _on_button_clicked(self, widget, event):
self.menu.popup(None, None, self.popup_menu_below_button, self, event.button, event.time)

class PictureChooserButton(BaseChooserButton):
def __init__ (self, num_cols=4, button_picture_height=24, menu_picture_width=24, has_button_label=False, keep_square=False, frame=False):
def __init__ (self, num_cols=4, button_picture_width=24, menu_picture_width=24, has_button_label=False, keep_square=False, frame=False):
super(PictureChooserButton, self).__init__(has_button_label, frame)
self.num_cols = num_cols
self.scale = self.get_scale_factor()
self.button_picture_height = button_picture_height
self.button_picture_width = button_picture_width
self.menu_picture_width = menu_picture_width
self.keep_square = keep_square
self.row = 0
Expand All @@ -82,9 +82,9 @@ def __init__ (self, num_cols=4, button_picture_height=24, menu_picture_width=24,

self.button_image.set_valign(Gtk.Align.CENTER)
if self.keep_square:
self.button_image.set_size_request(button_picture_height / self.scale, button_picture_height / self.scale)
self.button_image.set_size_request(button_picture_width / self.scale, button_picture_width / self.scale)
else:
self.button_image.set_size_request(-1, button_picture_height / self.scale)
self.button_image.set_size_request(button_picture_width / self.scale, -1)

self.connect_after("draw", self.on_draw)

Expand Down Expand Up @@ -121,13 +121,10 @@ def reset_loading_progress(self):
self.progress = 0.0
self.queue_draw()

def create_scaled_surface(self, path, for_button=False):
if for_button:
w = -1 if not self.keep_square else self.button_picture_height * self.scale
h = self.button_picture_height * self.scale
else:
w = self.menu_picture_width * self.scale
h = -1 if not self.keep_square else self.menu_picture_width * self.scale
def create_scaled_surface(self, path):
w = self.button_picture_width * self.scale
h = -1 if not self.keep_square else self.button_picture_width * self.scale

try:
pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(path, w, h)
if pixbuf:
Expand All @@ -137,7 +134,7 @@ def create_scaled_surface(self, path, for_button=False):
return None

def set_picture_from_file (self, path):
surface = self.create_scaled_surface(path, for_button=True)
surface = self.create_scaled_surface(path)
if surface:
self.button_image.set_from_surface(surface)
else:
Expand Down
18 changes: 9 additions & 9 deletions files/usr/share/cinnamon/cinnamon-settings/modules/cs_themes.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,10 +190,10 @@ def on_module_selected(self):

self.scale = self.window.get_scale_factor()

self.icon_chooser = self.create_button_chooser(self.settings, 'icon-theme', 'icons', 'icons', button_picture_height=ICON_SIZE, menu_picture_width=ICON_SIZE, num_cols=4, frame=False)
self.cursor_chooser = self.create_button_chooser(self.settings, 'cursor-theme', 'icons', 'cursors', button_picture_height=32, menu_picture_width=32, num_cols=4, frame=False)
self.theme_chooser = self.create_button_chooser(self.settings, 'gtk-theme', 'themes', 'gtk-3.0', button_picture_height=35, menu_picture_width=125, num_cols=4, frame=True)
self.cinnamon_chooser = self.create_button_chooser(self.cinnamon_settings, 'name', 'themes', 'cinnamon', button_picture_height=60, menu_picture_width=125*self.scale, num_cols=4, frame=True)
self.icon_chooser = self.create_button_chooser(self.settings, 'icon-theme', 'icons', 'icons', button_picture_width=ICON_SIZE, menu_picture_width=ICON_SIZE, num_cols=4, frame=False)
self.cursor_chooser = self.create_button_chooser(self.settings, 'cursor-theme', 'icons', 'cursors', button_picture_width=32, menu_picture_width=32, num_cols=4, frame=False)
self.theme_chooser = self.create_button_chooser(self.settings, 'gtk-theme', 'themes', 'gtk-3.0', button_picture_width=125, menu_picture_width=125, num_cols=4, frame=True)
self.cinnamon_chooser = self.create_button_chooser(self.cinnamon_settings, 'name', 'themes', 'cinnamon', button_picture_width=125, menu_picture_width=125*self.scale, num_cols=4, frame=True)

selected_meta_theme = None

Expand Down Expand Up @@ -743,19 +743,19 @@ def make_group(self, group_label, widget, add_widget_to_size_group=True):

return box

def create_button_chooser(self, settings, key, path_prefix, path_suffix, button_picture_height, menu_picture_width, num_cols, frame):
chooser = PictureChooserButton(num_cols=num_cols, button_picture_height=button_picture_height, menu_picture_width=menu_picture_width, has_button_label=True, frame=frame)
def create_button_chooser(self, settings, key, path_prefix, path_suffix, button_picture_width, menu_picture_width, num_cols, frame):
chooser = PictureChooserButton(num_cols=num_cols, button_picture_width=button_picture_width, menu_picture_width=menu_picture_width, has_button_label=True, frame=frame)
theme = settings.get_string(key)
self.set_button_chooser(chooser, theme, path_prefix, path_suffix, button_picture_height)
self.set_button_chooser(chooser, theme, path_prefix, path_suffix, button_picture_width)
return chooser

def set_button_chooser(self, chooser, theme, path_prefix, path_suffix, button_picture_height):
def set_button_chooser(self, chooser, theme, path_prefix, path_suffix, button_picture_width):
self.set_button_chooser_text(chooser, theme)
if path_suffix == "cinnamon" and theme == "cinnamon":
chooser.set_picture_from_file("/usr/share/cinnamon/theme/thumbnail.png")
elif path_suffix == "icons":
current_theme = Gtk.IconTheme.get_default()
folder = current_theme.lookup_icon_for_scale("folder", button_picture_height, self.window.get_scale_factor(), 0)
folder = current_theme.lookup_icon_for_scale("folder", button_picture_width, self.window.get_scale_factor(), 0)
if folder is not None:
path = folder.get_filename()
chooser.set_picture_from_file(path)
Expand Down

0 comments on commit 86c071c

Please sign in to comment.