bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#21173: 25.0.50; New frames positioned off screen with multiple monit


From: Eli Zaretskii
Subject: bug#21173: 25.0.50; New frames positioned off screen with multiple monitors
Date: Wed, 28 Oct 2015 17:52:52 +0200

> From: Andy Moreton <andrewjmoreton@gmail.com>
> Date: Wed, 28 Oct 2015 14:13:28 +0000
> 
> On Wed 28 Oct 2015, martin rudalics wrote:
> 
> >> Hopefully this reply includes a suiteably formatted patch.
> >
> > Thanks.  But compiling gets me now:
> >
> > ../../src/w32term.c: In function 'x_calc_absolute_position':
> > ../../src/w32term.c:5926:7: error: incompatible type for argument 1 of 
> > 'Fw32_display_monitor_attributes_list'
> > ./globals.h:4463:1: note: expected 'Lisp_Object' but argument is of type 
> > 'int'
> 
> What non-default build options are you using to see this error ?

I think the warnings depend on the version of GCC.

> I've built this without warnings on:
>   mingw32 32bit
>   mingw32 32bit wide-int
>   mingw64 64bit
>   cygwin  64bit 
> 
> > I suppose you meant writing something like
> >
> >       Lisp_Object frame, list;
> >
> >       XSETFRAME (frame, f);
> >       list = Fw32_display_monitor_attributes_list (frame);
> >
> > Please have a look.
> 
> I'm sure you know more about it than me - I don't know enough about the
> internals to judge which is correct. Feel free to adjust the patch to
> fix this.

Martin is right: Fw32_display_monitor_attributes_list accepts a
Lisp_Object as its argument, which should be either nil, a frame, a
terminal, or a display name (a string), whereas FRAME_X_DISPLAY
returns zero on MS-Windows.  I think it works for you because Qnil has
the value of zero.  To catch such problems, invoke the configure
script with the --enable-check-lisp-object-type switch.

> The patch as shown was tested with multiple monitors on Win7 64bit for both
> mingw64 and cygwin w32 builds, and worked correctly with the testcase
> from the original reporter.
> 
> I've retested this briefly with your fix, which still works for the
> simple testcase shows by Fran Litterio.

To see the difference, you need a test case where the selected frame
and the frame used in your code are different.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]