X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=sidebyside;f=shell%2Fev-utils.c;h=3e5c203f5d89758b41063baafd296b66fdb8180a;hb=595d902c5518765e086e8a911124ef36ed9300b7;hp=90217262f3dbc2a16041d07346affbfd4fa5ee21;hpb=13a06349251874bd35d2f03c3fc93217cee749a2;p=evince.git diff --git a/shell/ev-utils.c b/shell/ev-utils.c index 90217262..3e5c203f 100644 --- a/shell/ev-utils.c +++ b/shell/ev-utils.c @@ -369,3 +369,44 @@ ev_gui_menu_position_tree_selection (GtkMenu *menu, ev_gui_sanitise_popup_position (menu, widget, x, y); } +/** + * get_num_monitors: Get the number of user monitors. + * @window: optional GtkWindow to look at. + * + * Returns: Number of monitors, -1 if uncertain situation (like multiple screens) + */ +gint +get_num_monitors (GtkWindow *window) +{ + GdkDisplay *display; + GdkScreen *screen; + gint num_screen; + + display = gdk_display_get_default (); + num_screen = gdk_display_get_n_screens (display); + + if (num_screen != 1) + return -1; + + if (window) + screen = gtk_window_get_screen (window); + else + screen = gdk_display_get_screen (display, 0); + + return gdk_screen_get_n_monitors (screen); +} + +gdouble +get_screen_dpi (GtkWindow *window) +{ + GdkScreen *screen; + gdouble xdpi, ydpi; + + screen = gtk_window_get_screen (window); + + xdpi = 25.4 * gdk_screen_get_width (screen) / gdk_screen_get_width_mm (screen); + ydpi = 25.4 * gdk_screen_get_height (screen) / gdk_screen_get_height_mm (screen); + + return (xdpi + ydpi) / 2.0; +} +