Skip to content

Commit 836400f

Browse files
committed
[linux] Implement center method #59
1 parent 0f56cee commit 836400f

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

linux/window_manager_plugin.cc

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,24 @@ static FlMethodResponse* start_dragging(WindowManagerPlugin* self) {
366366
fl_method_success_response_new(fl_value_new_bool(true)));
367367
}
368368

369+
static FlMethodResponse* get_primary_display(WindowManagerPlugin* self,
370+
FlValue* args) {
371+
GdkDisplay* display = gdk_display_get_default();
372+
GdkMonitor* monitor = gdk_display_get_primary_monitor(display);
373+
374+
GdkRectangle frame;
375+
gdk_monitor_get_geometry(monitor, &frame);
376+
377+
auto size = fl_value_new_map();
378+
fl_value_set_string_take(size, "width", fl_value_new_float(frame.width));
379+
fl_value_set_string_take(size, "height", fl_value_new_float(frame.height));
380+
381+
g_autoptr(FlValue) value = fl_value_new_map();
382+
fl_value_set_take(value, fl_value_new_string("size"), size);
383+
384+
return FL_METHOD_RESPONSE(fl_method_success_response_new(value));
385+
}
386+
369387
// Called when a method call is received from Flutter.
370388
static void window_manager_plugin_handle_method_call(
371389
WindowManagerPlugin* self,
@@ -445,6 +463,8 @@ static void window_manager_plugin_handle_method_call(
445463
response = set_skip_taskbar(self, args);
446464
} else if (strcmp(method, "startDragging") == 0) {
447465
response = start_dragging(self);
466+
} else if (strcmp(method, "getPrimaryDisplay") == 0) {
467+
response = get_primary_display(self, args);
448468
} else {
449469
response = FL_METHOD_RESPONSE(fl_method_not_implemented_response_new());
450470
}

0 commit comments

Comments
 (0)