~ubuntu-branches/ubuntu/precise/xorg-server/precise

« back to all changes in this revision

Viewing changes to hw/xwin/wincreatewnd.c

  • Committer: Bazaar Package Importer
  • Author(s): Christopher James Halse Rogers
  • Date: 2011-01-31 19:45:19 UTC
  • mfrom: (1.1.38 upstream) (0.1.19 experimental)
  • Revision ID: james.westby@ubuntu.com-20110131194519-fx30d1zsg83invba
Tags: 2:1.9.99.901+git20110131.be3be758-0ubuntu1
* Merge from (unreleased) debian-experimental.  Remaining Ubuntu changes:
  - rules:
    + Disable SELinux, libaudit-dev is not in main yet. (LP: #406226)
    + Enable xcsecurity. (LP: #247537)
    + Add --with-extra-module-dir to support GL alternatives.
  - control: 
    + Xvfb depends on xauth, x11-xkb-utils. (LP: #500102)
    + Add breaks for incompatible drivers. (LP: #614993)
    + Drop libaudit-dev from build-deps.
  - local/xvfb-run*: Add correct docs about error codes. (LP #328205)
  - debian/patches:
    + 100_rethrow_signals.patch:
      When aborting, re-raise signals for apport
    + 109_fix-swcursor-crash.patch:
      Avoid dereferencing null pointer while reloading cursors during
      resume. (LP: #371405)
    + 111_armel-drv-fallbacks.patch:
      Add support for armel driver fallbacks.
    + 121_only_switch_vt_when_active.diff:
      Add a check to prevent the X server from changing the VT when killing
      GDM from the console.
    + 122_xext_fix_card32_overflow_in_xauth.patch:
      Fix server crash when “xauth generate” is called with large timeout.
    + 157_check_null_modes.patch, 162_null_crtc_in_rotation.patch,
      166_nullptr_xinerama_keyrepeat.patch, 167_nullptr_xisbread.patch
      169_mipointer_nullptr_checks.patch,
      172_cwgetbackingpicture_nullptr_check.patch:
      Fix various segfaults in xserver by checking pointers for NULL
      values before dereferencing them.
    + 165_man_xorg_conf_no_device_ident.patch
      Correct man page
    + 168_glibc_trace_to_stderr.patch:
      Report abort traces to stderr instead of terminal
    + 184_virtual_devices_autodetect.patch:
      Use vesa for qemu device, which is not supported by cirrus
    + 188_default_primary_to_first_busid.patch:
      Pick the first device and carry on (LP: #459512)
    + 190_cache-xkbcomp_output_for_fast_start_up.patch:
    + 191-Xorg-add-an-extra-module-path.patch:
      Add support for the alternatives module path.
    + 198_nohwaccess.patch:
      Adds a -nohwaccess argument to make X not access the hardware
      ports directly.
    + 200_randr-null.patch:
      Clarify a pointer initialization.
    + 206_intel_8xx_default_to_fbdev.patch:
      Makes 8xx class intel GPUs default to fbdev for stability. (LP: #633593)
* Refresh 121_only_switch_vt_when_active.diff for new upstream.
* Drop 187_edid_quirk_hp_nc8430.patch; upstream.
* Drop 189_xserver_1.5.0_bg_none_root.patch; functionality now upstream.
* Refresh 190_cache-xkbcomp_output_for_fast_start_up.patch for new upstream.
* Drop 197_xvfb-randr.patch:
  - miRandR, which this used, has been removed from the server. 
* Drop 204_fix-neg-sync-transition.patch; upstream.
* Drop 207_dga_master_device.patch; upstream.
* Drop 208_switch_on_release.diff; upstream.
* debian/patches/209_add_legacy_bgnone_option.patch:
  - Add "-nr" as a synonym for "-background none" to ease the transition from
    the old 189_xserver_1.5.0_bg_none_root.patch patch.  Can be dropped once
    all the ?DM have been updated to use the new option.
* debian/control:
  - Add Breaks: to xserver-xorg-video-8 and current fglrx.  These proprietary
    drivers don't yet have appropriate dependency information, so manually
    handle them here to prevent broken upgrades.

Show diffs side-by-side

added added

removed removed

Lines of Context:
192
192
          fForceShowWindow = TRUE;
193
193
        } 
194
194
        dwWindowStyle |= WS_CAPTION;
195
 
        if (pScreenInfo->fScrollbars)
 
195
        if (pScreenInfo->iResizeMode != notAllowed)
196
196
            dwWindowStyle |= WS_THICKFRAME | WS_MAXIMIZEBOX;
197
197
    }
198
198
  else
233
233
      iPosY = rcWorkArea.top;
234
234
    }
235
235
 
 
236
  /* Clean up the scrollbars flag, if necessary */
 
237
  if ((!pScreenInfo->fDecoration
 
238
#ifdef XWIN_MULTIWINDOWEXTWM
 
239
       || pScreenInfo->fMWExtWM
 
240
#endif
 
241
       || pScreenInfo->fRootless
 
242
#ifdef XWIN_MULTIWINDOW
 
243
       || pScreenInfo->fMultiWindow
 
244
#endif
 
245
       )
 
246
      && (pScreenInfo->iResizeMode == resizeWithScrollbars))
 
247
    {
 
248
      /* We cannot have scrollbars if we do not have a window border */
 
249
      pScreenInfo->iResizeMode = notAllowed;
 
250
    }
 
251
 
236
252
  /* Did the user specify a height and width? */
237
253
  if (pScreenInfo->fUserGaveHeightAndWidth)
238
254
    {
256
272
#if CYGDEBUG
257
273
          winDebug ("winCreateBoundingWindowWindowed - Window has decoration\n");
258
274
#endif
259
 
          /* Are we using scrollbars? */
260
 
          if (pScreenInfo->fScrollbars)
 
275
 
 
276
          /* Are we resizable */
 
277
          if (pScreenInfo->iResizeMode != notAllowed)
261
278
            {
262
279
#if CYGDEBUG
263
 
              winDebug ("winCreateBoundingWindowWindowed - Window has "
264
 
                      "scrollbars\n");
 
280
              winDebug ("winCreateBoundingWindowWindowed - Window is resizable\n");
265
281
#endif
266
282
 
267
283
              iWidth += 2 * GetSystemMetrics (SM_CXSIZEFRAME);
271
287
          else
272
288
            {
273
289
#if CYGDEBUG
274
 
              winDebug ("winCreateBoundingWindowWindowed - Window does not have "
275
 
                      "scrollbars\n");
 
290
              winDebug ("winCreateBoundingWindowWindowed - Window is not resizable\n");
276
291
#endif
277
292
 
278
293
              iWidth += 2 * GetSystemMetrics (SM_CXFIXEDFRAME);
296
311
        }
297
312
    }
298
313
 
299
 
  /* Clean up the scrollbars flag, if necessary */
300
 
  if ((!pScreenInfo->fDecoration
301
 
#ifdef XWIN_MULTIWINDOWEXTWM
302
 
       || pScreenInfo->fMWExtWM
303
 
#endif
304
 
       || pScreenInfo->fRootless
305
 
#ifdef XWIN_MULTIWINDOW
306
 
       || pScreenInfo->fMultiWindow
307
 
#endif
308
 
       )
309
 
      && pScreenInfo->fScrollbars)
310
 
    {
311
 
      /* We cannot have scrollbars if we do not have a window border */
312
 
      pScreenInfo->fScrollbars = FALSE;
313
 
    }
314
 
 
 
314
  /* Make sure window is no bigger than work area */
315
315
  if (TRUE 
316
316
#ifdef XWIN_MULTIWINDOWEXTWM
317
317
       && !pScreenInfo->fMWExtWM
396
396
          rcClient.bottom, rcClient.top);
397
397
  
398
398
  /* We adjust the visual size if the user did not specify it */
399
 
  if (!(pScreenInfo->fScrollbars && pScreenInfo->fUserGaveHeightAndWidth))
 
399
  if (!((pScreenInfo->iResizeMode == resizeWithScrollbars) && pScreenInfo->fUserGaveHeightAndWidth))
400
400
    {
401
401
      /*
402
402
       * User did not give a height and width with scrollbars enabled,