Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,6 @@ gio_dep = dependency('gio-2.0')
gio_unix_dep = dependency('gio-unix-2.0')
gmodule_dep = dependency('gmodule-2.0')
gdk_wl_dep = dependency('gtk4-wayland')
# GDK X11 dep is for detecting whether we're on Wayland or not ONLY, we don't actually have
# a hard X11 dependency here
gdk_x11_dep = dependency('gtk4-x11')
x11_dep = dependency('x11')
gtk_dep = dependency('gtk4')
gee_dep = dependency('gee-0.8')
granite_dep = dependency('granite-7', version: '>=7.0.0')
Expand Down
47 changes: 11 additions & 36 deletions src/PanelWindow.vala
Original file line number Diff line number Diff line change
Expand Up @@ -74,11 +74,7 @@ public class Wingpanel.PanelWindow : Gtk.Window {
update_panel_dimensions ();
Services.BackgroundManager.initialize (panel_height);

if (Gdk.Display.get_default () is Gdk.Wayland.Display) {
init_wl ();
} else {
init_x ();
}
init_wl ();
}

private void update_panel_dimensions () {
Expand All @@ -87,7 +83,7 @@ public class Wingpanel.PanelWindow : Gtk.Window {
// We just use our monitor because Gala makes sure we are always on the primary one
var monitor_dimensions = get_display ().get_monitor_at_surface (get_surface ()).get_geometry ();

if (!Services.DisplayConfig.is_logical_layout () && Gdk.Display.get_default () is Gdk.Wayland.Display) {
if (!Services.DisplayConfig.is_logical_layout ()) {
monitor_dimensions.width /= get_scale_factor ();
monitor_dimensions.height /= get_scale_factor ();
monitor_dimensions.x /= get_scale_factor ();
Expand All @@ -104,8 +100,6 @@ public class Wingpanel.PanelWindow : Gtk.Window {
private void on_scale_changed () {
if (desktop_panel != null) {
desktop_panel.set_size (-1, get_actual_height ());
} else {
init_x ();
}

update_panel_dimensions ();
Expand All @@ -119,23 +113,6 @@ public class Wingpanel.PanelWindow : Gtk.Window {
return get_allocated_height ();
}

private void init_x () {
var display = Gdk.Display.get_default ();
if (display is Gdk.X11.Display) {
unowned var xdisplay = ((Gdk.X11.Display) display).get_xdisplay ();

var window = ((Gdk.X11.Surface) get_surface ()).get_xid ();

var prop = xdisplay.intern_atom ("_MUTTER_HINTS", false);

var value = "anchor=4:hide-mode=0";

xdisplay.change_property (window, prop, X.XA_STRING, 8, 0, (uchar[]) value, value.length);

Idle.add_once (update_panel_dimensions); // Update again since we now can be 100% sure that we are on the primary monitor
}
}

public void registry_handle_global (Wl.Registry wl_registry, uint32 name, string @interface, uint32 version) {
if (@interface == "io_elementary_pantheon_shell_v1") {
desktop_shell = wl_registry.bind<Pantheon.Desktop.Shell> (name, ref Pantheon.Desktop.Shell.iface, uint32.min (version, 1));
Expand All @@ -155,17 +132,15 @@ public class Wingpanel.PanelWindow : Gtk.Window {
private void init_wl () {
registry_listener.global = registry_handle_global;
unowned var display = Gdk.Display.get_default ();
if (display is Gdk.Wayland.Display) {
unowned var wl_display = ((Gdk.Wayland.Display) display).get_wl_display ();
var wl_registry = wl_display.get_registry ();
wl_registry.add_listener (
registry_listener,
this
);

if (wl_display.roundtrip () < 0) {
return;
}
unowned var wl_display = ((Gdk.Wayland.Display) display).get_wl_display ();
var wl_registry = wl_display.get_registry ();
wl_registry.add_listener (
registry_listener,
this
);

if (wl_display.roundtrip () < 0) {
return;
}
}
}
2 changes: 0 additions & 2 deletions src/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ wingpanel_deps = [
libwingpanel_dep,
granite_dep,
gdk_wl_dep,
gdk_x11_dep,
x11_dep,
posix_dep,
wl_client_dep,
pantheon_desktop_shell_dep
Expand Down
Loading