Make browser Cmd+click open new windows on macOS
Some checks failed
Alpine 3.21 Scripts failed
Arch Linux Success
Arch Linux AUR Success
Debian Bookworm Success
Fedora 39 Success
OpenBSD 7.6 Scripts failed
openSUSE 15.5 Success

This commit is contained in:
Přemysl Eric Janouch 2025-10-18 15:24:36 +01:00
parent 3bea18708f
commit cf6ded1d03
Signed by: p
GPG Key ID: A0420B94F92B9493

View File

@ -1,7 +1,7 @@
// //
// fiv-browser.c: filesystem browsing widget // fiv-browser.c: filesystem browsing widget
// //
// Copyright (c) 2021 - 2024, Přemysl Eric Janouch <p@janouch.name> // Copyright (c) 2021 - 2025, Přemysl Eric Janouch <p@janouch.name>
// //
// Permission to use, copy, modify, and/or distribute this software for any // Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted. // purpose with or without fee is hereby granted.
@ -1323,10 +1323,14 @@ fiv_browser_button_release_event(GtkWidget *widget, GdkEventButton *event)
if (!entry || entry != entry_at(self, event->x, event->y)) if (!entry || entry != entry_at(self, event->x, event->y))
return GDK_EVENT_PROPAGATE; return GDK_EVENT_PROPAGATE;
GdkModifierType primary = gdk_keymap_get_modifier_mask(
gdk_keymap_get_for_display(gtk_widget_get_display(widget)),
GDK_MODIFIER_INTENT_PRIMARY_ACCELERATOR);
guint state = event->state & gtk_accelerator_get_default_mod_mask(); guint state = event->state & gtk_accelerator_get_default_mod_mask();
if ((event->button == GDK_BUTTON_PRIMARY && state == 0)) if ((event->button == GDK_BUTTON_PRIMARY && state == 0))
return open_entry(widget, entry, FALSE); return open_entry(widget, entry, FALSE);
if ((event->button == GDK_BUTTON_PRIMARY && state == GDK_CONTROL_MASK) || if ((event->button == GDK_BUTTON_PRIMARY && state == primary) ||
(event->button == GDK_BUTTON_MIDDLE && state == 0)) (event->button == GDK_BUTTON_MIDDLE && state == 0))
return open_entry(widget, entry, TRUE); return open_entry(widget, entry, TRUE);
return GDK_EVENT_PROPAGATE; return GDK_EVENT_PROPAGATE;