コード例 #1
0
void LLContainerView::reshape(S32 width, S32 height, BOOL called_from_parent)
{
	LLRect scroller_rect;
	scroller_rect.setOriginAndSize(0, 0, width, height);

	if (mScrollContainer)
	{
		scroller_rect = mScrollContainer->getContentWindowRect();
	}
	else
	{
		// if we're uncontained - make height as small as possible
		scroller_rect.mTop = 0;
	}

	arrange(scroller_rect.getWidth(), scroller_rect.getHeight(), called_from_parent);

	// sometimes, after layout, our container will change size (scrollbars popping in and out)
	// if so, attempt another layout
	if (mScrollContainer)
	{
		LLRect new_container_rect = mScrollContainer->getContentWindowRect();

		if ((new_container_rect.getWidth() != scroller_rect.getWidth()) ||
			(new_container_rect.getHeight() != scroller_rect.getHeight()))  // the container size has changed, attempt to arrange again
		{
			arrange(new_container_rect.getWidth(), new_container_rect.getHeight(), called_from_parent);
		}
	}
}
コード例 #2
0
ファイル: mouse.c プロジェクト: krmnn/wmfs-samoht
/** Move a client from one tag to another with dah mouse
 *\param c client pointer
 */
static void
mouse_move_tag_client(Client *c)
{
     Window w;
     int i, d, s;

     if(!(c->flags & TileFlag) && !(c->flags & LMaxFlag))
          return;

     s = c->screen;

     XQueryPointer(dpy, infobar[selscreen].tags_board->win, &w, &w, &d, &d, &d, &d, (uint*)&d);

     for(i = 1; i < conf.ntag[selscreen] + 1; ++i)
          if(infobar[selscreen].tags[i]->win == w
             && tags[selscreen][i].layout.func != freelayout)
          {
               c->screen = selscreen;
               c->tag = i;
               tags[c->screen][c->tag].request_update = True;
               arrange(s, True);

               if(s != c->screen)
                    arrange(c->screen, True);
          }

     client_focus_next(c);

     return;
}
コード例 #3
0
ファイル: tags.c プロジェクト: bbidulock/adwm
void
toggleview(View *cv, int index)
{
	Client *c;
	View *v;
	unsigned long long tags;
	unsigned i;

	/* Typically from a keyboard command.  Again, we should use the monitor with the
	   keyboard focus before the monitor with the pointer in it. */

	/* This function used to worry about having a selected tag for each monitor, but
	   this has now been moved to the view.  We don't care if there exists views that
	   have no selected tag because they can still be assigned to a monitor and tags
	   toggled from there. */
	if (-1 > index || index >= scr->ntags)
		return;
	tags = (index == -1) ? ((1ULL << scr->ntags) - 1) : (1ULL << index);
	cv->seltags ^= tags;
	for (v = scr->views, i = 0; i < scr->ntags; i++, v++)
		if ((v->seltags & tags) && v != cv)
			arrange(v);
	arrange(cv);
	c = lastselected(cv);
	focus(c);
	focuslockclient(c);
	ewmh_update_net_current_desktop();
}
コード例 #4
0
void LLContainerView::reshape(S32 width, S32 height, BOOL called_from_parent)
{
	S32 desired_width = width;
	S32 desired_height = height;

	if (mScrollContainer)
	{
		BOOL dum_bool;
		mScrollContainer->calcVisibleSize(&desired_width, &desired_height, &dum_bool, &dum_bool);
	}
	else
	{
		// if we're uncontained - make height as small as possible
		desired_height = 0;
	}

	arrange(desired_width, desired_height, called_from_parent);

	// sometimes, after layout, our container will change size (scrollbars popping in and out)
	// if so, attempt another layout
	if (mScrollContainer)
	{
		S32 new_container_width;
		S32 new_container_height;
		BOOL dum_bool;
		mScrollContainer->calcVisibleSize(&new_container_width, &new_container_height, &dum_bool, &dum_bool);

		if ((new_container_width != desired_width) ||
			(new_container_height != desired_height))  // the container size has changed, attempt to arrange again
		{
			arrange(new_container_width, new_container_height, called_from_parent);
		}
	}
}
コード例 #5
0
ファイル: tags.c プロジェクト: bbidulock/adwm
void
view(View *ov, int index)
{
	Monitor *cm, *om;
	Client *c;
	View *cv;

	if (!ov) {
		EPRINTF("Null view pointer.\n");
		return;
	}
	if (0 > index || index >= scr->ntags) {
		XPRINTF("WARNING: bad index %d\n", index);
		return;
	}
	if (ov->index == index) {
		XPRINTF("WARNING: view already index %d\n", index);
		return;
	}
	if (!(cm = ov->curmon)) {
		XPRINTF("WARNING: view %d has no monitor\n", ov->index);
		return;
	}
	XPRINTF("VIEW: disassociating monitor %d from view %d\n", cm->num, ov->index);
	ov->curmon = NULL;
	XPRINTF("VIEW: setting previous view for monitor %d to view %d\n", cm->num, ov->index);
	cm->preview = ov;
	XPRINTF("VIEW: new view is %d\n", index);
	cv = scr->views + index;
	XPRINTF("VIEW: associating monitor %d with view %d\n", cm->num, cv->index);
	cv->curmon = cm;
	XPRINTF("VIEW: associating view %d with monitor %d\n", cv->index, cm->num);
	cm->curview = cv;
	for (om = scr->monitors; om; om = om->next) {
		if (om == cm)
			continue;
		if (om->curview == cv) {
			XPRINTF("VIEW: switching monitor %d from view %d to %d\n",
					om->num, om->curview->index, ov->index);
			om->curview = ov;
			ov->curmon = om;
			updategeom(om);
			XPRINTF("VIEW: arranging view %d\n", ov->index);
			arrange(ov);
			/* only one can match */
			break;
		}
	}
	updategeom(cm);
	XPRINTF("VIEW: arranging view %d\n", cv->index);
	arrange(cv);
	c = lastselected(cv);
	focus(c);
	focuslockclient(c);
	ewmh_update_net_current_desktop();
}
コード例 #6
0
void MainMenu::draw() {
	ofSetHexColor(0xFFFFFF);


	arrange();
	
	if(!touching) {
		
		// pulling the top
		if(scrollOffset>0) {
			deltaX = -scrollOffset*0.1;
			
			
			// pulling the bottom
			// 
		} else if(totalWidth + scrollOffset < scrollRect.width) {
			
			deltaX = (scrollRect.width - (totalWidth + scrollOffset))*0.1;
		
		} else {
			// normal momentum
			deltaX *= 0.9;
			
		}
		if(ABS(deltaX)<1) deltaX = 0;
		scrollOffset += deltaX;
	}
	
	
	Container::draw();	

	
}
コード例 #7
0
ファイル: MusicModel.cpp プロジェクト: BlakeJarvis/csound
 void MusicModel::arrange(int silenceInstrumentNumber,
                          std::string csoundInstrumentName, double gain, double pan)
 {
   int csoundInstrumentNumber =
     cppSound->getInstrumentNumber(csoundInstrumentName);
   arrange(silenceInstrumentNumber, csoundInstrumentNumber, gain, pan);
 }
コード例 #8
0
ファイル: MusicModel.cpp プロジェクト: BlakeJarvis/csound
 void MusicModel::arrange(int silenceInstrumentNumber,
                          std::string csoundInstrumentName)
 {
   int csoundInstrumentNumber =
     cppSound->getInstrumentNumber(csoundInstrumentName);
   arrange(silenceInstrumentNumber, csoundInstrumentNumber);
 }
コード例 #9
0
ファイル: infobar.c プロジェクト: n4cht/nnwm
/* Set the infobar position
 * \param pos Position of the bar
 */
void
infobar_set_position(int pos)
{
     screen_get_sel();

     switch(pos)
     {
     case IB_Hide:
          sgeo[selscreen].y = spgeo[selscreen].y + TBARH;
          sgeo[selscreen].height = spgeo[selscreen].height - TBARH;
          infobar[selscreen].geo.y = -(infobar[selscreen].geo.height) * 2;
          break;
     case IB_Bottom:
          sgeo[selscreen].y = spgeo[selscreen].y + TBARH;
          sgeo[selscreen].height = spgeo[selscreen].height - INFOBARH - TBARH;
          infobar[selscreen].geo.y = spgeo[selscreen].y + sgeo[selscreen].height + TBARH;
          break;
     default:
     case IB_Top:
          sgeo[selscreen].y = spgeo[selscreen].y + INFOBARH + TBARH;
          sgeo[selscreen].height = spgeo[selscreen].height - INFOBARH - TBARH;
          infobar[selscreen].geo.y = spgeo[selscreen].y;
          break;
     }

     tags[selscreen][seltag[selscreen]].barpos = pos;

     barwin_move(infobar[selscreen].bar, sgeo[selscreen].x - BORDH, infobar[selscreen].geo.y);
     infobar_draw(selscreen);
     arrange(selscreen, True);

     return;
}
コード例 #10
0
ファイル: events.c プロジェクト: sg3des/bspwm
void handle_state(monitor_t *m, desktop_t *d, node_t *n, xcb_atom_t state, unsigned int action)
{
	if (state == ewmh->_NET_WM_STATE_FULLSCREEN) {
		if (action == XCB_EWMH_WM_STATE_ADD)
			set_fullscreen(n, true);
		else if (action == XCB_EWMH_WM_STATE_REMOVE)
			set_fullscreen(n, false);
		else if (action == XCB_EWMH_WM_STATE_TOGGLE)
			set_fullscreen(n, !n->client->fullscreen);
		arrange(m, d);
	} else if (state == ewmh->_NET_WM_STATE_STICKY) {
		if (action == XCB_EWMH_WM_STATE_ADD)
			set_sticky(m, d, n, true);
		else if (action == XCB_EWMH_WM_STATE_REMOVE)
			set_sticky(m, d, n, false);
		else if (action == XCB_EWMH_WM_STATE_TOGGLE)
			set_sticky(m, d, n, !n->client->sticky);
	} else if (state == ewmh->_NET_WM_STATE_DEMANDS_ATTENTION) {
		if (action == XCB_EWMH_WM_STATE_ADD)
			set_urgency(m, d, n, true);
		else if (action == XCB_EWMH_WM_STATE_REMOVE)
			set_urgency(m, d, n, false);
		else if (action == XCB_EWMH_WM_STATE_TOGGLE)
			set_urgency(m, d, n, !n->client->urgent);
	}
}
コード例 #11
0
ファイル: ewmh.c プロジェクト: WscriChy/echinus
void
ewmh_process_state_atom(Client *c, Atom state, int set) {
	CARD32 data[2];

	data[1] = None;
	if (state == atom[WindowStateFs]) {
		focus(c);
		if ((set == _NET_WM_STATE_ADD || set == _NET_WM_STATE_TOGGLE)
				&& !c->ismax) {
			c->wasfloating = c->isfloating;
			if (!c->isfloating)
				togglefloating(NULL);
			togglemax(NULL);
			data[0] = state;
		} else if ((set == _NET_WM_STATE_REMOVE ||
				set == _NET_WM_STATE_TOGGLE) && c->ismax) {
			togglemax(NULL);
			if (!c->wasfloating)
				togglefloating(NULL);
			data[0] = None;
		}
		XChangeProperty(dpy, c->win, atom[WindowState], XA_ATOM, 32,
		    PropModeReplace, (unsigned char *) data, 2);
		DPRINT;
		arrange(curmonitor());
		DPRINTF("%s: x%d y%d w%d h%d\n", c->name, c->x, c->y, c->w, c->h);
	}
	if (state == atom[WindowStateModal])
		focus(c);
}
コード例 #12
0
ファイル: ewmh.c プロジェクト: WscriChy/echinus
void
clientmessage(XEvent *e) {
	XClientMessageEvent *ev = &e->xclient;
	Client *c;

	if (ev->message_type == atom[CloseWindow]) {
		if ((c = getclient(ev->window, clients, ClientWindow)))
			killclient(c);
	}
	else if (ev->message_type == atom[ActiveWindow]) {
		if ((c = getclient(ev->window, clients, ClientWindow))) {
				c->isicon = False;
				focus(c);
				arrange(curmonitor());
		}
	} else if (ev->message_type == atom[CurDesk]) {
		view(tags[ev->data.l[0]]);
	} else if (ev->message_type == atom[WindowState]) {
		if ((c = getclient(ev->window, clients, ClientWindow))) {
			ewmh_process_state_atom(c, (Atom) ev->data.l[1], ev->data.l[0]);
			if (ev->data.l[2])
				ewmh_process_state_atom(c,
				    (Atom) ev->data.l[2], ev->data.l[0]);
		}
	} else if (ev->message_type == atom[WMChangeState]) {
		if ((c = getclient(ev->window, clients, ClientWindow))) {
			if (ev->data.l[0] == IconicState) {
				focus(c);
				iconify(NULL);
			}
		}
	}
}
コード例 #13
0
/* Drier program to test above function */
int main(void)
{
    struct node *list1 = NULL, *list3 = NULL;
    list1 = create(list1);
    list3 = arrange(&list1);
    display(list3);
}
コード例 #14
0
ファイル: cyclelayout.c プロジェクト: itdaniher/SucklessDebXO
void
cyclelayout() {
	lt[sellt]++; 
	if (lt[sellt] == layouts + LENGTH(layouts)) lt[sellt] = layouts;
	if(sel) arrange();
	else drawbar();
}
コード例 #15
0
ファイル: tag.c プロジェクト: wavebeem/wmfs
/* Transfert a client to a tag
 * \param c Client pointer
 * \param tag Tag
*/
void
tag_transfert(Client *c, int tag)
{
     screen_get_sel();

     CHECK(c);

     if(tag <= 0)
          tag = 1;

     if(tag > conf.ntag[selscreen])
          return;

     c->tag = tag;
     c->screen = selscreen;

     arrange(c->screen, True);

     client_focus_next(c);

     client_update_attributes(c);

     tags[c->screen][tag].request_update = True;

     return;
}
コード例 #16
0
ファイル: desktop.c プロジェクト: Iroxxar/bspwm
void transfer_desktop(monitor_t *ms, monitor_t *md, desktop_t *d)
{
	if (ms == md)
		return;

	desktop_t *dd = ms->desk;
	unlink_desktop(ms, d);
	insert_desktop(md, d);

	if (d == dd) {
		if (ms->desk != NULL)
			show_desktop(ms->desk);
		if (md->desk != d)
			hide_desktop(d);
	}

	for (node_t *n = first_extrema(d->root); n != NULL; n = next_leaf(n, d->root))
		translate_client(ms, md, n->client);

	arrange(md, d);

	if (d != dd && md->desk == d)
		show_desktop(d);

	history_transfer_desktop(md, d);

	ewmh_update_wm_desktops();
	ewmh_update_desktop_names();
	ewmh_update_current_desktop();
	put_status();
}
コード例 #17
0
ファイル: monitor.c プロジェクト: dj95/bspwm
void update_root(monitor_t *m, xcb_rectangle_t *rect)
{
	xcb_rectangle_t last_rect = m->rectangle;
	m->rectangle = *rect;
	if (m->root == XCB_NONE) {
		uint32_t values[] = {XCB_EVENT_MASK_ENTER_WINDOW};
		m->root = xcb_generate_id(dpy);
		xcb_create_window(dpy, XCB_COPY_FROM_PARENT, m->root, root,
		                  rect->x, rect->y, rect->width, rect->height, 0,
		                  XCB_WINDOW_CLASS_INPUT_ONLY, XCB_COPY_FROM_PARENT, XCB_CW_EVENT_MASK, values);
		xcb_icccm_set_wm_class(dpy, m->root, sizeof(ROOT_WINDOW_IC), ROOT_WINDOW_IC);
		window_lower(m->root);
		if (focus_follows_pointer) {
			window_show(m->root);
		}
	} else {
		window_move_resize(m->root, rect->x, rect->y, rect->width, rect->height);
		put_status(SBSC_MASK_MONITOR_GEOMETRY, "monitor_geometry 0x%08X %ux%u+%i+%i\n",
		           m->id, rect->width, rect->height, rect->x, rect->y);
	}
	for (desktop_t *d = m->desk_head; d != NULL; d = d->next) {
		for (node_t *n = first_extrema(d->root); n != NULL; n = next_leaf(n, d->root)) {
			if (n->client == NULL) {
				continue;
			}
			adapt_geometry(&last_rect, rect, n);
		}
		arrange(m, d);
	}
}
コード例 #18
0
ファイル: nmaster-ncol.c プロジェクト: EkkiD/MyCode
static void
setnmaster(const Arg *arg) {
	if(!arg || !selmon->lt[selmon->sellt]->arrange || selmon->num >= MaxMon)
		return;
	selmon->nmaster[selmon->curtag]= arg->i > 0 ? arg->i : 0;
	arrange(selmon);
}
コード例 #19
0
void
togglefullscreen(const Arg *arg) {
	Client *c = selmon->sel;

	if(!c)
		return;
	if(!c->isfullscreen) {
		XChangeProperty(dpy, c->win, netatom[NetWMState], XA_ATOM, 32,
		                PropModeReplace, (unsigned char*)&netatom[NetWMFullscreen], 1);
		c->isfullscreen = True;
		c->oldstate = c->isfloating;
		c->oldbw = c->bw;
		c->bw = 0;
		c->isfloating = True;
		resizeclient(c, c->mon->mx, c->mon->my, c->mon->mw, c->mon->mh);
		XRaiseWindow(dpy, c->win);
	}
	else
	{
		XChangeProperty(dpy, c->win, netatom[NetWMState], XA_ATOM, 32,
		                PropModeReplace, (unsigned char*)0, 0);
		c->isfullscreen = False;
		c->isfloating = c->oldstate;
		c->bw = c->oldbw;
		c->x = c->oldx;
		c->y = c->oldy;
		c->w = c->oldw;
		c->h = c->oldh;
		resizeclient(c, c->x, c->y, c->w, c->h);
		arrange(c->mon);
	}
}
コード例 #20
0
ファイル: rotatemons.c プロジェクト: tinoucas/dwm-tinou
void
rotatemonitor(const Arg* arg) {
	Monitor *m, *nextm, *lastm, *sparem = createmon();
	Bool allviews = (arg->i != 0);
	const ViewStack *vs;
	const unsigned int views = allviews ? ~0 : selmon->vs->tagset;
	int i;

	rotatingMons = True;
	/* rotate clients */
	for(m = mons, nextm = mons->next; nextm; m = m->next, nextm = nextm->next) {
		if (!nextm)
			nextm = mons;
		swapmonitors(views, m, nextm, sparem);
	}
	free(sparem);
	/* tidy monitors (num, tagset, lt) */
	for(lastm = mons; lastm && lastm->next; lastm = lastm->next) ;
	for (i = 0, m = mons; m; m = m->next, ++i) {
		m->num = i;
		if(!allviews) {
			if (hasclientson(m, views)) {
				monview(m, views);
				vs = getviewstackof(lastm, views);
				copyviewstack(m->vs, vs);
			}
			else if (!hasclientson(m, m->vs->tagset))
				monview(m, 0);
		}
		restorebar(m);
		arrange(m);
		lastm = m;
	}
	rotatingMons = False;
}
コード例 #21
0
ファイル: fence8.cpp プロジェクト: vnovakov/contest-solution
void doSelection()
{
	int i, j;
	sortRails(0, nr - 1);
	for (i = 0; i < nb; i++)
		board_remainders[i] = board_lengths[i];

	for (i = 0; i < nr; i++)
	{  j = 0;
		while (j < nb && rail_boards[i] == -1)
		{	if (board_remainders[j] >= rail_lengths[i])
			{	rail_boards[i] = j;  board_remainders[j] -= rail_lengths[i]; }
			j++;
		}
		if (rail_boards[i] == -1)
		{	ir = i;
			goto doneForNow;
		}
	}
	ir = i;
   return;
	doneForNow:
	;

	while (arrange())
	{
		j = 0;
		while (j < nb && rail_boards[ir] == -1)
		{	if (board_remainders[j] >= rail_lengths[ir])
			{	rail_boards[ir] = j;  board_remainders[j] -= rail_lengths[ir]; }
			j++;
		}
		ir++;
	}
}
コード例 #22
0
ファイル: desktop.c プロジェクト: Iroxxar/bspwm
void change_layout(monitor_t *m, desktop_t *d, layout_t l)
{
	d->layout = l;
	arrange(m, d);
	if (d == mon->desk)
		put_status();
}
コード例 #23
0
ファイル: tag.c プロジェクト: wavebeem/wmfs
/** Keep that tag the last one
  *\param cmd uicb_t type unused
*/
void
uicb_tag_stay_last(uicb_t cmd)
{
     (void)cmd;

     screen_get_sel();

     if(tags[selscreen][seltag[selscreen]].stay_last)
          tags[selscreen][seltag[selscreen]].stay_last = False;

     else
     {
          int i;
          remove_old_last_tag(selscreen);
          
          for(i = seltag[selscreen]; i <= conf.ntag[selscreen]; i++)
          {
               tag_swap(selscreen, seltag[selscreen], seltag[selscreen] + 1);
          }

          tag_set(conf.ntag[selscreen]);
          tags[selscreen][seltag[selscreen]].stay_last = True;
          arrange(selscreen, True);
     }


     return;
}
コード例 #24
0
ファイル: text.cpp プロジェクト: ltf1320/programdesign
void main(){
	LinkList  La;
	LinkList  Lb=NULL;
	build(La);
	output(La);
	Lb=arrange(La);
	output(Lb);
}
コード例 #25
0
ファイル: roomthread1v1.cpp プロジェクト: ailue/NiubiSlash
void RoomThread1v1::startArrange(ServerPlayer *player){
    if(player->getState() != "online"){        
        GeneralSelector *selector = GeneralSelector::GetInstance();
        arrange(player, selector->arrange1v1(player));
    }else{
        player->invoke("startArrange");
    }
}
コード例 #26
0
ファイル: tag.c プロジェクト: krmnn/wmfs-samoht
void
uicb_tag_toggle_expose(uicb_t cmd)
{
     (void)cmd;
     int i, j;

     screen_get_sel();

     for(i = 1; i <= conf.ntag[selscreen]; i++)
     {
          if(strcmp(tags[selscreen][i].name, conf.tag_expose_name) == 0)
          {
               if(clients && sel->tag)
                    tag_set(sel->tag);

               tag_delete(selscreen, i);

               for(j = 0; j < conf.ntag[selscreen]; j++)
                    tags[selscreen][j].request_update = True;

               arrange(selscreen, True);

               return;
          }
     }
     
     tag_new(selscreen, conf.tag_expose_name);

     for(i = 0; i < conf.nlayout; ++i)
     {
          if(strcmp(conf.expose_layout, conf.layout[i].type) == 0)
          {
               tags[selscreen][conf.ntag[selscreen]].layout = conf.layout[i];
          }
     }

     for(i = 1; i < conf.ntag[selscreen]; ++i)
     {
          tags[selscreen][conf.ntag[selscreen]].tagad ^= TagFlag(i);
     }
     
     tags[selscreen][conf.ntag[selscreen]].request_update = True;
     arrange(selscreen, True);

     return;
}
コード例 #27
0
ファイル: view.c プロジェクト: csimons/cswm
void
detach(Arg *arg) {
    if(!sel)
        return;
    sel->view = !sel->view;
    pop(sel);
    arrange();
}
コード例 #28
0
ファイル: Query.cpp プロジェクト: Seungmuk92/Q4
deque<string> Query::splitQuery(string inputQuery)
{
	int open = 0;
	deque<string> queryDeq;
	deque<string> keyDeq;
	deque<string> operDeq;
	deque<string> resultDeq;
	string str;
	stringstream ss(inputQuery);

	while (ss >> str)
	{
		if (str == "(")
		{
			open++;
			queryDeq.push_back(str);
		}
		else if (str == ")")
		{
			open--;
			string key = queryDeq.back();
			queryDeq.pop_back();
			while (!queryDeq.empty())
			{
				if (key == "(")
				{
					break;
				}
				else if (key == "AND" || key == "OR")
				{
					operDeq.push_front(key);
				}
				else
				{
					keyDeq.push_front(key);
				}
				key = queryDeq.back();
				queryDeq.pop_back();
			}
			deque<string>tempDeq = arrange(keyDeq, operDeq);
			string tempStr;
			keyDeq.clear();
			operDeq.clear();
			while (!tempDeq.empty())
			{
				tempStr = tempDeq.front();
				tempDeq.pop_front();
				if (tempStr != "*")resultDeq.push_back(tempStr);
			}
			queryDeq.push_back("*");
		}
		else
		{
			queryDeq.push_back(str);
		}
	}
	return resultDeq;
}
コード例 #29
0
ファイル: nmaster-ncol.c プロジェクト: EkkiD/MyCode
static void
incnmaster(const Arg *arg) {
	if(!arg || !selmon->lt[selmon->sellt]->arrange || selmon->num >= MaxMon)
		return;
	selmon->nmaster[selmon->curtag]+= arg->i;
	if(selmon->nmaster[selmon->curtag]< 0)
		selmon->nmaster[selmon->curtag] = 0;
	arrange(selmon);
}
コード例 #30
0
ファイル: packedlayout.cpp プロジェクト: KDE/kdepim
int PackedLayout::heightForWidth(int w) const
{
    if (w != mWidthCached)
    {
        mHeightCached = arrange(QRect(0, 0, w, 0), false);
        mWidthCached = w;
    }
    return mHeightCached;
}