[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.
- bug#21173: 25.0.50; New frames positioned off screen with multiple monitors, martin rudalics, 2015/10/08
- bug#21173: 25.0.50; New frames positioned off screen with multiple monitors, Fran, 2015/10/08
- bug#21173: 25.0.50; New frames positioned off screen with multiple monitors, Francis Litterio, 2015/10/21
- bug#21173: 25.0.50; New frames positioned off screen with multiple monitors, Andy Moreton, 2015/10/22
- bug#21173: 25.0.50; New frames positioned off screen with multiple monitors, martin rudalics, 2015/10/22
- bug#21173: 25.0.50; New frames positioned off screen with multiple monitors, Andy Moreton, 2015/10/27
- bug#21173: 25.0.50; New frames positioned off screen with multiple monitors, martin rudalics, 2015/10/28
- bug#21173: 25.0.50; New frames positioned off screen with multiple monitors, Andy Moreton, 2015/10/28
- bug#21173: 25.0.50; New frames positioned off screen with multiple monitors,
Eli Zaretskii <=
- bug#21173: 25.0.50; New frames positioned off screen with multiple monitors, Andy Moreton, 2015/10/28
- bug#21173: 25.0.50; New frames positioned off screen with multiple monitors, Eli Zaretskii, 2015/10/28
- bug#21173: 25.0.50; New frames positioned off screen with multiple monitors, martin rudalics, 2015/10/28
- bug#21173: 25.0.50; New frames positioned off screen with multiple monitors, Andy Moreton, 2015/10/28
- bug#21173: 25.0.50; New frames positioned off screen with multiple monitors, martin rudalics, 2015/10/29