From: YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
To: grischka <grishka@gmx.de>
Cc: emacs-devel@gnu.org
Subject: Re: x-display-pixel-width/height inconsistency
Date: Thu, 21 Mar 2013 10:44:29 +0900 [thread overview]
Message-ID: <wlip4l7chu.wl%mituharu@math.s.chiba-u.ac.jp> (raw)
In-Reply-To: <514A5DE1.10009@gmx.de>
>>>>> On Thu, 21 Mar 2013 02:09:53 +0100, grischka <grishka@gmx.de> said:
>> It is the size of whole "(virtual) screen" that we want to know here,
>> rather than the size of a particular monitor.
> Then use
> w = GetSystemMetrics(SM_CXVIRTUALSCREEN);
> h = GetSystemMetrics(SM_CYVIRTUALSCREEN);
Thanks. I tried making a patch using them. Do you happen to know an
appropriate way to exclude Windows 95 and NT 4 where
SM_CXVIRTUALSCREEN and SM_CYVIRTUALSCREEN are not available?
YAMAMOTO Mitsuharu
mituharu@math.s.chiba-u.ac.jp
=== modified file 'src/w32fns.c'
--- src/w32fns.c 2013-03-20 11:29:37 +0000
+++ src/w32fns.c 2013-03-21 01:39:22 +0000
@@ -4731,15 +4731,13 @@
{
struct w32_display_info *dpyinfo = check_x_display_info (display);
HDC hdc;
- int cap;
+ float ratio;
- hdc = GetDC (dpyinfo->root_window);
+ hdc = GetDC (NULL);
+ ratio = (float) GetDeviceCaps (hdc, VERTSIZE) / GetDeviceCaps (dc, VERTRES);
+ ReleaseDC (NULL, hdc);
- cap = GetDeviceCaps (hdc, VERTSIZE);
-
- ReleaseDC (dpyinfo->root_window, hdc);
-
- return make_number (cap);
+ return make_number ((int) (ratio * x_display_pixel_height (dpyinfo) + 0.5));
}
DEFUN ("x-display-mm-width", Fx_display_mm_width, Sx_display_mm_width, 0, 1, 0,
@@ -4750,17 +4748,14 @@
(Lisp_Object display)
{
struct w32_display_info *dpyinfo = check_x_display_info (display);
-
HDC hdc;
- int cap;
-
- hdc = GetDC (dpyinfo->root_window);
-
- cap = GetDeviceCaps (hdc, HORZSIZE);
+ float ratio;
- ReleaseDC (dpyinfo->root_window, hdc);
+ hdc = GetDC (NULL);
+ ratio = (float) GetDeviceCaps (hdc, HORZSIZE) / GetDeviceCaps (dc, HORZRES);
+ ReleaseDC (NULL, hdc);
- return make_number (cap);
+ return make_number ((int) (ratio * x_display_pixel_width (dpyinfo) + 0.5));
}
DEFUN ("x-display-backing-store", Fx_display_backing_store,
=== modified file 'src/w32term.c'
--- src/w32term.c 2013-03-15 10:07:29 +0000
+++ src/w32term.c 2013-03-21 01:32:55 +0000
@@ -142,6 +142,15 @@
#define WS_EX_LAYERED 0x80000
#endif
+/* SM_CXVIRTUALSCREEN and SM_CYVIRTUALSCREEN are not defined on 95 and
+ NT4. */
+#ifndef SM_CXVIRTUALSCREEN
+#define SM_CXVIRTUALSCREEN 78
+#endif
+#ifndef SM_CYVIRTUALSCREEN
+#define SM_CXVIRTUALSCREEN 79
+#endif
+
/* This is a frame waiting to be autoraised, within w32_read_socket. */
struct frame *pending_autoraise_frame;
@@ -515,19 +524,29 @@
int
x_display_pixel_height (struct w32_display_info *dpyinfo)
{
- HDC dc = GetDC (NULL);
- int pixels = GetDeviceCaps (dc, VERTRES);
- ReleaseDC (NULL, dc);
- return pixels;
+ if (1 /* XXX: exclude 95 and NT4 */)
+ return GetSystemMetrics (SM_CYVIRTUALSCREEN);
+ else
+ {
+ HDC dc = GetDC (NULL);
+ int pixels = GetDeviceCaps (dc, VERTRES);
+ ReleaseDC (NULL, dc);
+ return pixels;
+ }
}
int
x_display_pixel_width (struct w32_display_info *dpyinfo)
{
- HDC dc = GetDC (NULL);
- int pixels = GetDeviceCaps (dc, HORZRES);
- ReleaseDC (NULL, dc);
- return pixels;
+ if (1 /* XXX: exclude 95 and NT4 */)
+ return GetSystemMetrics (SM_CXVIRTUALSCREEN);
+ else
+ {
+ HDC dc = GetDC (NULL);
+ int pixels = GetDeviceCaps (dc, HORZRES);
+ ReleaseDC (NULL, dc);
+ return pixels;
+ }
}
\f
next prev parent reply other threads:[~2013-03-21 1:44 UTC|newest]
Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-21 0:58 x-display-pixel-width/height inconsistency grischka
2013-03-21 1:05 ` YAMAMOTO Mitsuharu
2013-03-21 1:09 ` grischka
2013-03-21 1:44 ` YAMAMOTO Mitsuharu [this message]
2013-03-21 23:29 ` YAMAMOTO Mitsuharu
2013-03-22 10:33 ` Eli Zaretskii
2013-03-23 0:32 ` YAMAMOTO Mitsuharu
2013-03-23 6:15 ` Eli Zaretskii
2013-03-23 13:35 ` Jan Djärv
2013-03-23 23:58 ` YAMAMOTO Mitsuharu
2013-03-24 3:53 ` Eli Zaretskii
2013-03-24 4:36 ` YAMAMOTO Mitsuharu
2013-03-24 16:19 ` Eli Zaretskii
2013-04-27 5:13 ` YAMAMOTO Mitsuharu
2013-04-27 8:04 ` Jan Djärv
2013-04-28 1:40 ` YAMAMOTO Mitsuharu
2013-04-28 17:16 ` Jan D.
2013-04-29 2:27 ` YAMAMOTO Mitsuharu
2013-04-29 2:42 ` YAMAMOTO Mitsuharu
2013-05-01 9:58 ` Jan Djärv
2013-05-02 4:09 ` YAMAMOTO Mitsuharu
2013-05-06 1:04 ` YAMAMOTO Mitsuharu
2013-05-06 1:55 ` Stefan Monnier
2013-05-06 6:15 ` YAMAMOTO Mitsuharu
2013-05-06 13:37 ` Stefan Monnier
2013-05-08 10:46 ` YAMAMOTO Mitsuharu
2013-05-08 11:24 ` YAMAMOTO Mitsuharu
2013-05-08 17:41 ` Eli Zaretskii
2013-05-09 0:09 ` YAMAMOTO Mitsuharu
2013-05-09 1:52 ` Glenn Morris
2013-05-09 3:19 ` YAMAMOTO Mitsuharu
2013-05-09 6:27 ` Glenn Morris
2013-05-09 2:53 ` Eli Zaretskii
2013-05-09 8:14 ` Jan Djärv
2013-05-09 8:43 ` YAMAMOTO Mitsuharu
2013-05-09 15:18 ` Jan Djärv
2013-05-09 20:03 ` Eli Zaretskii
2013-05-09 21:28 ` Stefan Monnier
2013-05-10 6:00 ` YAMAMOTO Mitsuharu
2013-05-10 6:05 ` YAMAMOTO Mitsuharu
2013-05-10 7:06 ` Eli Zaretskii
2013-05-10 7:47 ` YAMAMOTO Mitsuharu
2013-05-10 8:41 ` Eli Zaretskii
2013-05-10 8:55 ` YAMAMOTO Mitsuharu
2013-05-10 9:15 ` Eli Zaretskii
2013-05-10 9:27 ` YAMAMOTO Mitsuharu
2013-05-14 10:39 ` YAMAMOTO Mitsuharu
2013-07-01 6:49 ` martin rudalics
2013-07-02 1:30 ` YAMAMOTO Mitsuharu
2013-07-02 10:38 ` martin rudalics
2013-07-02 10:53 ` Juanma Barranquero
2013-07-02 13:11 ` martin rudalics
2013-07-02 14:05 ` Juanma Barranquero
2013-07-03 9:27 ` martin rudalics
2013-07-03 10:49 ` Juanma Barranquero
2013-07-03 12:44 ` martin rudalics
2013-07-03 13:43 ` Juanma Barranquero
2013-07-04 9:34 ` martin rudalics
[not found] ` <5987E3>
2013-07-04 22:32 ` Juanma Barranquero
2013-07-05 7:44 ` martin rudalics
2013-07-05 9:32 ` Juanma Barranquero
2013-07-05 9:34 ` Jan Djärv
2013-07-05 9:41 ` Juanma Barranquero
2013-07-05 11:25 ` Jan Djärv
2013-07-05 11:56 ` Juanma Barranquero
2013-07-05 12:12 ` Jan Djärv
2013-07-05 12:16 ` Juanma Barranquero
2013-07-05 15:30 ` Drew Adams
2013-07-05 15:53 ` Juanma Barranquero
2013-07-05 16:58 ` Drew Adams
2013-07-06 14:48 ` Juanma Barranquero
2013-07-06 19:25 ` Drew Adams
2013-07-05 15:27 ` Drew Adams
2013-07-04 10:28 ` YAMAMOTO Mitsuharu
2013-05-10 7:44 ` Jan Djärv
2013-04-28 1:48 ` YAMAMOTO Mitsuharu
-- strict thread matches above, loose matches on Subject: below --
2013-03-19 0:39 YAMAMOTO Mitsuharu
2013-03-19 1:34 ` Leo Liu
2013-03-19 4:54 ` Xue Fuqiao
2013-03-19 15:41 ` Drew Adams
2013-03-19 15:51 ` Leo Liu
2013-03-19 15:58 ` Drew Adams
2013-03-20 0:55 ` Leo Liu
2013-03-19 22:25 ` YAMAMOTO Mitsuharu
2013-03-19 23:15 ` Dmitry Gutov
2013-03-19 23:52 ` YAMAMOTO Mitsuharu
2013-03-20 0:12 ` Dmitry Gutov
2013-03-20 0:20 ` YAMAMOTO Mitsuharu
2013-03-20 1:41 ` Dmitry Gutov
2013-03-20 3:58 ` YAMAMOTO Mitsuharu
2013-03-20 14:05 ` Dmitry Gutov
2013-03-20 23:28 ` YAMAMOTO Mitsuharu
2013-03-21 1:27 ` Dmitry Gutov
2013-03-21 1:51 ` YAMAMOTO Mitsuharu
2013-03-21 2:43 ` Dmitry Gutov
2013-03-21 3:47 ` YAMAMOTO Mitsuharu
2013-03-21 4:22 ` YAMAMOTO Mitsuharu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=wlip4l7chu.wl%mituharu@math.s.chiba-u.ac.jp \
--to=mituharu@math.s.chiba-u.ac.jp \
--cc=emacs-devel@gnu.org \
--cc=grishka@gmx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).