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

[mgp-users-jp 00582] Re: modified 1.05a



>>>>> On Sat, 24 Jul 1999 17:39:05 +0900, YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> said:
 >> この件と関連するかどうかわかりませんが、Virtual Desktop などと呼ばれる
 >> 機能を持った Window Manager の場合、コントロールキーをずっと押しっぱな
 >> しでデスクトップを行き来すると、ページ一覧が消えてしまう(白い帯だけ残
 >> る)という現象が起こります。帯のところにマウスを持っていくと、そこのペー
 >> ジ番号は再表示されます。また、`G' でのガイドライン表示もデスクトップを
 >> 行き来した後で表示されなくなります(ページを移るとまた表示されます)。

とりあえず、ガイドライン表示を直すパッチを作ってみました。
よろしければちょっと試してみていただけないでしょうか?

来週にも 1.06aがでる予定ですが、まだ安定性がわからないのでこのパッチは
1.06aに含めないかもしれません。

ページ一覧の方はちょっと複雑になるので対応しませんでした。
コントロールキーを一瞬離せば直るはずですので、それほど深刻なものでは
ないような気がします。

--
西田佳史
nishida@wide.ad.jp


*** plist.c.orig	Sun Jul 25 02:09:17 1999
--- plist.c	Sun Jul 25 02:08:08 1999
***************
*** 225,255 ****
  	char buf[BUFSIZ], *p;
  	int n;
  	u_int page;
- 	int showlast;
  
  	if (!pg_mode || !pg_win)
  		return;
  
  	page = state->page;
- #if 0
- 	if (page == pg_lastpage && state->cp == pg_lastcp)
- 		return;
- #endif
- 	if (page == pg_lastpage)
- 		return;
- 
- 	if (!state->cp) {
- 		pg_clean();
- 		return;
- 	}
  
- 	showlast = (state->cp->ct_op == CTL_PAUSE && state->cp->cti_value);
  	XSetForeground(display, gc_pta, ctrl_color[caching]);
  	XSetForeground(display, gc_ptk, ctrl_color[caching]);
  	XSetBackground(display, gc_pta, back_color[caching]);
  	XSetBackground(display, gc_ptk, back_color[caching]);
  
! 	pg_clean();
  	if (page > 1) {
  		sprintf(buf, "\033$B\"+\033(B %s",
  			page_title(page - 1));
--- 225,242 ----
  	char buf[BUFSIZ], *p;
  	int n;
  	u_int page;
  
  	if (!pg_mode || !pg_win)
  		return;
  
  	page = state->page;
  
  	XSetForeground(display, gc_pta, ctrl_color[caching]);
  	XSetForeground(display, gc_ptk, ctrl_color[caching]);
  	XSetBackground(display, gc_pta, back_color[caching]);
  	XSetBackground(display, gc_ptk, back_color[caching]);
  
! 	if (state->page != pg_lastpage) pg_clean();
  	if (page > 1) {
  		sprintf(buf, "\033$B\"+\033(B %s",
  			page_title(page - 1));
***************
*** 271,289 ****
  		draw_kstring(pg_win, buf, window_width - 10 - n,
  			pl_fh - plfs->max_bounds.descent);
  	}
! 	if (showlast == 0) {
! 		sprintf(buf, "-- %d/%d --", page, maxpage);
! 		n = draw_kstring(pg_tmp, buf, 0, pl_fh);
! 		/*
! 		 * The contents of buf is not destroyed by draw_kstring
! 		 * as it doesnot include Kanji sequence.
! 		 */
! 		draw_kstring(pg_win, buf, window_width / 2 - n / 2,
! 			pl_fh - plfs->max_bounds.descent);
! 	}
  
  	pg_lastpage = state->page;
  	pg_lastcp = state->cp;
  }
  
  void
--- 258,277 ----
  		draw_kstring(pg_win, buf, window_width - 10 - n,
  			pl_fh - plfs->max_bounds.descent);
  	}
! 
! 	sprintf(buf, "-- %d/%d --", page, maxpage);
! 	n = draw_kstring(pg_tmp, buf, 0, pl_fh);
! 	/*
! 	 * The contents of buf is not destroyed by draw_kstring
! 	 * as it doesnot include Kanji sequence.
! 	 */
! 	draw_kstring(pg_win, buf, window_width / 2 - n / 2,
! 		pl_fh - plfs->max_bounds.descent);
  
  	pg_lastpage = state->page;
+ #if 0
  	pg_lastcp = state->cp;
+ #endif
  }
  
  void