~ubuntu-branches/ubuntu/wily/kwin/wily-proposed

« back to all changes in this revision

Viewing changes to manage.cpp

  • Committer: Package Import Robot
  • Author(s): Jonathan Riddell
  • Date: 2015-08-10 23:16:37 UTC
  • mfrom: (1.1.10)
  • Revision ID: package-import@ubuntu.com-20150810231637-5zb2tstjkez93hml
Tags: 4:5.3.95-0ubuntu1
new upstream beta release

Show diffs side-by-side

added added

removed removed

Lines of Context:
148
148
 
149
149
    // TODO: Try to obey all state information from info->state()
150
150
 
151
 
    original_skip_taskbar = skip_taskbar = (info->state() & NET::SkipTaskbar) != 0;
152
 
    skip_pager = (info->state() & NET::SkipPager) != 0;
 
151
    setOriginalSkipTaskbar((info->state() & NET::SkipTaskbar) != 0);
 
152
    setSkipPager((info->state() & NET::SkipPager) != 0);
153
153
    readFirstInTabBox(firstInTabBoxCookie);
154
154
 
155
155
    setupCompositing();
177
177
    readActivities(activitiesCookie);
178
178
 
179
179
    // Initial desktop placement
 
180
    int desk = 0;
180
181
    if (session) {
181
182
        desk = session->desktop;
182
183
        if (session->onAllDesktops)
218
219
        if (desktop() == 0 && asn_valid && asn_data.desktop() != 0)
219
220
            desk = asn_data.desktop();
220
221
#ifdef KWIN_BUILD_ACTIVITIES
221
 
        if (!isMapped && !noborder && isNormalWindow() && !activitiesDefined) {
 
222
        if (Activities::self() && !isMapped && !noborder && isNormalWindow() && !activitiesDefined) {
222
223
            //a new, regular window, when we're not recovering from a crash,
223
224
            //and it hasn't got an activity. let's try giving it the current one.
224
225
            //TODO: decide whether to keep this before the 4.6 release
236
237
    desk = rules()->checkDesktop(desk, !isMapped);
237
238
    if (desk != NET::OnAllDesktops)   // Do range check
238
239
        desk = qBound(1, desk, static_cast<int>(VirtualDesktopManager::self()->count()));
 
240
    setDesktop(desk);
239
241
    info->setDesktop(desk);
240
242
    workspace()->updateOnAllDesktopsOfTransients(this);   // SELI TODO
241
243
    //onAllDesktopsChange(); // Decoration doesn't exist here yet
253
255
 
254
256
    QRect area;
255
257
    bool partial_keep_in_area = isMapped || session;
256
 
    if (isMapped || session)
 
258
    if (isMapped || session) {
257
259
        area = workspace()->clientArea(FullArea, geom.center(), desktop());
258
 
    else {
 
260
        checkOffscreenPosition(&geom, area);
 
261
    } else {
259
262
        int screen = asn_data.xinerama() == -1 ? screens()->current() : asn_data.xinerama();
260
263
        screen = rules()->checkScreen(screen, !isMapped);
261
264
        area = workspace()->clientArea(PlacementArea, screens()->geometry(screen).center(), desktop());
500
503
        // I.e. obey only forcing rules
501
504
        setKeepAbove(session->keepAbove);
502
505
        setKeepBelow(session->keepBelow);
503
 
        setSkipTaskbar(session->skipTaskbar, true);
 
506
        setOriginalSkipTaskbar(session->skipTaskbar);
504
507
        setSkipPager(session->skipPager);
505
508
        setSkipSwitcher(session->skipSwitcher);
506
509
        setShade(session->shaded ? ShadeNormal : ShadeNone);
515
518
            setFullScreen(true, false);
516
519
            geom_fs_restore = session->fsrestore;
517
520
        }
 
521
        checkOffscreenPosition(&geom_restore, area);
 
522
        checkOffscreenPosition(&geom_fs_restore, area);
518
523
    } else {
519
524
        // Window may want to be maximized
520
525
        // done after checking that the window isn't larger than the workarea, so that
534
539
        setShade(rules()->checkShade(info->state() & NET::Shaded ? ShadeNormal : ShadeNone, !isMapped));
535
540
        setKeepAbove(rules()->checkKeepAbove(info->state() & NET::KeepAbove, !isMapped));
536
541
        setKeepBelow(rules()->checkKeepBelow(info->state() & NET::KeepBelow, !isMapped));
537
 
        setSkipTaskbar(rules()->checkSkipTaskbar(info->state() & NET::SkipTaskbar, !isMapped), true);
 
542
        setOriginalSkipTaskbar(rules()->checkSkipTaskbar(info->state() & NET::SkipTaskbar, !isMapped));
538
543
        setSkipPager(rules()->checkSkipPager(info->state() & NET::SkipPager, !isMapped));
539
544
        setSkipSwitcher(rules()->checkSkipSwitcher(false, !isMapped));
540
545
        if (info->state() & NET::DemandsAttention)
702
707
    xcb_create_window(conn, depth, frame, rootWindow(), 0, 0, 1, 1, 0,
703
708
                      XCB_WINDOW_CLASS_INPUT_OUTPUT, visualid, cw_mask, cw_values);
704
709
    m_frame.reset(frame);
705
 
    m_frameWrapper.reset(QWindow::fromWinId(m_frame));
706
710
 
707
711
    setWindowHandles(m_client);
708
712