Hello community, here is the log from the commit of package gfxboot for openSUSE:Factory checked in at 2012-03-29 07:42:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gfxboot (Old) and /work/SRC/openSUSE:Factory/.gfxboot.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gfxboot", Maintainer is "snw...@suse.com" Changes: -------- --- /work/SRC/openSUSE:Factory/gfxboot/gfxboot.changes 2011-10-13 12:25:27.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.gfxboot.new/gfxboot.changes 2012-03-29 07:42:25.000000000 +0200 @@ -1,0 +2,7 @@ +Wed Mar 28 14:26:53 CEST 2012 - snw...@suse.de + +- ddc test record +- rework monitor detection +- new video selection menu + +------------------------------------------------------------------- Old: ---- gfxboot-4.4.7.tar.bz2 New: ---- gfxboot-4.5.0.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gfxboot.spec ++++++ --- /var/tmp/diff_new_pack.3lc04q/_old 2012-03-29 07:42:30.000000000 +0200 +++ /var/tmp/diff_new_pack.3lc04q/_new 2012-03-29 07:42:30.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package gfxboot # -# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,15 +16,14 @@ # - Name: gfxboot -Version: 4.4.7 -Release: 1 -License: GPL-2.0+ +Version: 4.5.0 +Release: 0 Summary: Graphical Boot Logo for GRUB, LILO and SYSLINUX -Url: http://en.opensuse.org/SDB:Gfxboot +License: GPL-2.0+ Group: System/Boot -Source: gfxboot-4.4.7.tar.bz2 +Url: http://en.opensuse.org/SDB:Gfxboot +Source: gfxboot-4.5.0.tar.bz2 Source1: KDE.tar.bz2 Source2: openSUSE.tar.bz2 Source3: SLED.tar.bz2 @@ -56,7 +55,6 @@ Tools to configure the graphics for your GRUB, LILO or SYSLINUX bootloader. %package devel -License: GPL-2.0+ Summary: Tools for creating a graphical boot logo Group: Development/Libraries/C and C++ Requires: %{name} = %{version} ++++++ KDE.tar.bz2 ++++++ ++++++ SLED.tar.bz2 ++++++ ++++++ SLES.tar.bz2 ++++++ ++++++ examples.tar.bz2 ++++++ ++++++ gfxboot-4.4.7.tar.bz2 -> gfxboot-4.5.0.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gfxboot-4.4.7/VERSION new/gfxboot-4.5.0/VERSION --- old/gfxboot-4.4.7/VERSION 2011-10-13 09:28:26.000000000 +0200 +++ new/gfxboot-4.5.0/VERSION 2012-03-28 14:26:45.000000000 +0200 @@ -1 +1 @@ -4.4.7 +4.5.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gfxboot-4.4.7/bincode.asm new/gfxboot-4.5.0/bincode.asm --- old/gfxboot-4.4.7/bincode.asm 2011-09-15 16:41:43.000000000 +0200 +++ new/gfxboot-4.5.0/bincode.asm 2012-03-28 14:26:09.000000000 +0200 @@ -501,17 +501,10 @@ tmp_var_2 dd 0 tmp_var_3 dd 0 -ddc_timings dw 0 ; standard ddc timing info -ddc_xtimings dd 0 ; converted standard timing/final timing value -ddc_xtimings1 dd 0, 0, 0, 0 ; must follow ddc_xtimings -ddc_xtimings2 dd 0, 0, 0, 0 ; must follow ddc_xtimings1 -ddc_mult dd 0, 1 ; needed for ddc timing calculation - dd 3, 4 - dd 4, 5 - dd 9, 16 - -fsc_bits dw 0, 0x0004, 0x4000, 0x0200, 0x0100, 0x0200, 0, 0x4000 - dw 0x0200, 0, 0, 0, 0, 0, 0, 0 + ; display size list +display_res.cnt dw 0 +display_res times 16 dw 0, 0 +display_res_pref dw 0, 0 align 2 pm_idt dw 7ffh ; idt for pm @@ -7495,25 +7488,72 @@ jb prim_monitorsize_90 mov [pstack.ptr],eax - cmp word [ddc_xtimings],0 + cmp word [display_res_pref],0 jnz prim_monitorsize_50 - call get_monitor_res + call read_ddc prim_monitorsize_50: mov dl,t_int - movzx eax,word [ddc_xtimings] + movzx eax,word [display_res_pref] mov ecx,1 call set_pstack_tos mov dl,t_int - movzx eax,word [ddc_xtimings + 2] + movzx eax,word [display_res_pref + 2] xor ecx,ecx call set_pstack_tos prim_monitorsize_90: ret +;; displaysizes - supported display sizes +; +; group: gfx.screen +; +; ( -- int1 int2 ) +; +; int1, int2: width and height +; + + bits 32 + +prim_displaysizes: + cmp word [display_res_pref],0 + jnz prim_displaysizes_20 + call read_ddc +prim_displaysizes_20: + xor ebx,ebx +prim_displaysizes_40: + inc ebx + cmp bx,[display_res.cnt] + ja prim_displaysizes_90 + + mov eax,[pstack.ptr] + inc eax + inc eax + cmp [pstack.size],eax + mov bp,pserr_pstack_overflow + jb prim_displaysizes_90 + mov [pstack.ptr],eax + + mov dl,t_int + movzx eax,word [display_res - 4 + 4*ebx] + mov ecx,1 + push ebx + call set_pstack_tos + pop ebx + mov dl,t_int + movzx eax,word [display_res + 2 - 4 + 4*ebx] + xor ecx,ecx + push ebx + call set_pstack_tos + pop ebx + jmp prim_displaysizes_40 +prim_displaysizes_90: + ret + + ;; image.size - graphics image size ; ; group: image @@ -16448,62 +16488,151 @@ ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; Get monitor capabilities. +; parse edid record ; +; es:ecx edid ; bits 32 -get_monitor_res: - call read_ddc - call read_fsc - - ; convert timing bitmask to resolution - ; if the card has enough memory assume larger resolutions - - mov ax,[ddc_timings] - mov dword [ddc_xtimings],640 + (480 << 16) - test ax,0ef03h - jnz get_mon_res_20 - cmp word [screen_mem],0x3e ; at least 4MB-128k - jb get_mon_res_21 -get_mon_res_20: - mov dword [ddc_xtimings],800 + (600 << 16) -get_mon_res_21: - test ax,0f00h - jnz get_mon_res_22 - cmp word [screen_mem],0x200 ; at least 32MB - jb get_mon_res_23 -get_mon_res_22: - mov dword [ddc_xtimings],1024 + (768 << 16) -get_mon_res_23: - test ax,0100h - jz get_mon_res_24 - mov dword [ddc_xtimings],1280 + (1024 << 16) -get_mon_res_24: - - ; find max. resolution - - mov ecx,9 - mov esi,ddc_xtimings - -get_mon_res_30: - mov ax,[esi] - mov dx,[esi+2] - - cmp ax,[ddc_xtimings] - jb get_mon_res_60 - - cmp dx,[ddc_xtimings+2] - jb get_mon_res_60 - - mov [ddc_xtimings],ax - mov [ddc_xtimings+2],dx - -get_mon_res_60: - add esi,4 - loop get_mon_res_30 +parse_edid: + mov word [display_res.cnt],0 + mov dword [display_res_pref],0 + + cmp dword [es:ecx+8],0 + jz parse_edid_90 + + cmp word [es:ecx+18],0 + jz parse_edid_90 + + movzx eax, byte [es:ecx+35] + test al, 60 + je .L5 + mov word [display_res], 640 + mov word [display_res+2], 480 + mov word [display_res.cnt], 1 +.L5: + test al, 3 + je .L6 + mov ax, [display_res.cnt] + movzx edx, ax + inc eax + mov word [display_res+edx*4], 800 + mov word [display_res+2+edx*4], 600 + mov [display_res.cnt], ax +.L6: + movzx eax, byte [es:ecx+36] + test al, -64 + je .L7 + mov dx, [display_res.cnt] + movzx ebx, dx + inc edx + mov word [display_res+ebx*4], 800 + mov word [display_res+2+ebx*4], 600 + mov [display_res.cnt], dx +.L7: + test al, 14 + je .L8 + mov dx, [display_res.cnt] + movzx ebx, dx + inc edx + mov word [display_res+ebx*4], 1024 + mov word [display_res+2+ebx*4], 768 + mov [display_res.cnt], dx +.L8: + test al, 1 + je .L9 + mov ax, [display_res.cnt] + movzx edx, ax + inc eax + mov word [display_res+edx*4], 1280 + mov word [display_res+2+edx*4], 1024 + mov [display_res.cnt], ax +.L9: + xor ebx, ebx + mov edi, 5 +.L15: + movzx edx, byte [es:ecx+39+ebx*2] + movzx eax, byte [es:ecx+38+ebx*2] + shr edx, 6 + add eax, 31 + cmp edx, 2 + lea esi, [eax*8] + je .L12 + cmp edx, 3 + je .L13 + dec edx + jne .L10 + lea eax, [esi+esi*2] + shr eax, 2 + jmp .L14 +.L12: + sal eax, 5 + xor edx, edx + div edi + jmp .L14 +.L13: + lea eax, [esi+esi*8] + shr eax, 4 + jmp .L14 +.L10: + inc ebx + cmp ebx, 4 + jne .L15 + mov eax, 54 +.L17: + movzx ebx, byte [es:ecx+2+eax] + movzx edi, byte [es:ecx+eax] + movzx esi, byte [es:ecx+1+eax] + mov edx, ebx + sal edi, 24 + sal esi, 16 + sal edx, 8 + add esi, edi + add esi, edx + movzx edx, byte [es:ecx+3+eax] + add esi, edx + cmp esi, 255 + jbe .L16 + movzx edx, byte [es:ecx+4+eax] + movzx esi, byte [es:ecx+5+eax] + and edx, 240 + sal edx, 4 + add ebx, edx + movzx edx, byte [es:ecx+7+eax] + and edx, 240 + sal edx, 4 + add edx, esi + je parse_edid_90 + test ebx, ebx + je parse_edid_90 + cmp edx, 4095 + je parse_edid_90 + cmp ebx, 4095 + je parse_edid_90 + mov si, [display_res.cnt] + movzx edi, si + inc esi + mov [display_res+edi*4], bx + mov [display_res+2+edi*4], dx + mov [display_res_pref], bx + mov [display_res_pref+2], dx + mov [display_res.cnt], si +.L16: + add eax, 18 + cmp eax, 126 + jne .L17 + jmp parse_edid_90 +.L14: + movzx edx, word [display_res.cnt] + mov [display_res+2+edx*4], ax + mov ax, [word display_res.cnt] + mov [display_res+edx*4], si + inc eax + mov [display_res.cnt], ax + jmp .L10 +parse_edid_90: ret @@ -16560,124 +16689,30 @@ jmp read_ddc_90 read_ddc_30: + mov ecx,[vbe_buffer] + call parse_edid - mov edi,[vbe_buffer] - - mov ax,[es:edi+23h] - mov [ddc_timings],ax - - mov ecx,4 - lea esi,[edi+26h] - mov edi,ddc_xtimings1 -read_ddc_40: - es lodsb - cmp al,1 - jbe read_ddc_50 - - movzx ebp,al - add ebp,31 - shl ebp,3 - - mov al,[es:esi] - shr al,6 - jz read_ddc_50 - movzx ebx,al - shl ebx,3 - - mov eax,ebp - mul dword [ebx+ddc_mult] - div dword [ebx+ddc_mult+4] - - jz read_ddc_50 + cmp dword [display_res_pref],0 + jnz read_ddc_90 - shl eax,16 - add eax,ebp - mov [edi],eax + ; pick the largest res + movzx ecx,word [display_res.cnt] + mov esi,display_res + or ecx,ecx + jz read_ddc_90 + mov ebx,[esi] read_ddc_50: - inc esi - add edi,4 - loop read_ddc_40 - - mov ecx,4 - mov esi,[vbe_buffer] - add esi,36h - mov edi,ddc_xtimings2 + lodsd + cmp eax,ebx + jbe read_ddc_60 + mov ebx,eax read_ddc_60: - mov eax,[es:esi] - bswap eax - cmp eax,100h - jb read_ddc_80 - cmp eax,1010101h - jz read_ddc_80 - movzx edx,byte [es:esi+4] - and dl,0f0h - shl edx,4 - mov dl,[es:esi+2] - movzx ebx,byte [es:esi+7] - and bl,0f0h - shl ebx,4 - mov bl,[es:esi+5] - or edx,edx - jz read_ddc_80 - or ebx,ebx - jz read_ddc_80 - cmp edx,0fffh - jz read_ddc_80 - cmp ebx,0fffh - jz read_ddc_80 - shl ebx,16 - add edx,ebx - mov [edi],edx - add edi,4 -read_ddc_80: - add esi,12h - loop read_ddc_60 - -read_ddc_90: - ret - + loop read_ddc_50 -; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; Look for a fsc notebook lcd panel and set ddc_timings. -; - - bits 32 - -read_fsc: - cmp word [ddc_timings],0 - jnz read_fsc_90 + mov [display_res_pref],ebx - mov edi,0f0000h -read_fsc_10: - cmp dword [es:edi],0x696a7546 - jnz read_fsc_30 - cmp dword [es:edi+4],0x20757374 - jnz read_fsc_30 - mov ecx,0x20 - xor ebx,ebx - mov esi,edi -read_fsc_20: - es lodsb - add bl,al - dec ecx - jnz read_fsc_20 - or bl,bl - jnz read_fsc_30 - mov al,[es:edi+23] - and al,0xf0 - jnz read_fsc_90 - mov bl,[es:edi+21] - and bl,0xf0 - shr bl,3 - mov ax,[fsc_bits+ebx] - mov [ddc_timings],ax - jmp read_fsc_90 -read_fsc_30: - add edi,0x10 - cmp edi,100000h - jbe read_fsc_10 -read_fsc_90: +read_ddc_90: ret diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gfxboot-4.4.7/changelog new/gfxboot-4.5.0/changelog --- old/gfxboot-4.4.7/changelog 2011-10-13 09:28:27.000000000 +0200 +++ new/gfxboot-4.5.0/changelog 2012-03-28 14:26:46.000000000 +0200 @@ -1,4 +1,9 @@ -2011-10-13: HEAD +2012-03-28: 4.5.0 + - ddc test record + - rework monitor detection + - new video selection menu + +2011-10-13: 4.4.7 - fix isohybrid detection 2011-10-13: 4.4.6 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gfxboot-4.4.7/mk_vocabulary new/gfxboot-4.5.0/mk_vocabulary --- old/gfxboot-4.4.7/mk_vocabulary 2011-09-15 16:41:43.000000000 +0200 +++ new/gfxboot-4.5.0/mk_vocabulary 2012-03-28 14:26:09.000000000 +0200 @@ -17,7 +17,7 @@ trace dtrace malloc free realloc memsize dumpmem gettype settype - screen.size image.colors vscreen.size monitorsize + screen.size image.colors vscreen.size monitorsize displaysizes moveto currentpoint lineto setcolor currentcolor putpixel getpixel setfont currentfont fontheight strsize show settextmodecolor image loadpalette setpalette getpalette Files old/gfxboot-4.4.7/test/ddc/ddc and new/gfxboot-4.5.0/test/ddc/ddc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gfxboot-4.4.7/test/ddc/gfxtest.config new/gfxboot-4.5.0/test/ddc/gfxtest.config --- old/gfxboot-4.4.7/test/ddc/gfxtest.config 1970-01-01 01:00:00.000000000 +0100 +++ new/gfxboot-4.5.0/test/ddc/gfxtest.config 2012-03-28 14:26:09.000000000 +0200 @@ -0,0 +1,15 @@ +# all files in this directory ex this config file are added +# to the bootloader directory + +# archive file name in theme directory +archive=bootlogo + +# setup function name in 'gfxtest' script +setup=isolinux + +# list of files to remove in bootloader directory +rm_files="" + +# additional 'gfxboot' args +args="" + ++++++ openSUSE.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/themes/openSUSE/config new/themes/openSUSE/config --- old/themes/openSUSE/config 2011-09-15 16:41:44.000000000 +0200 +++ new/themes/openSUSE/config 2012-03-28 14:26:09.000000000 +0200 @@ -1,2 +1,2 @@ -product=openSUSE 12.1 +product=openSUSE 12.2 based_on= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/themes/openSUSE/src/common.inc new/themes/openSUSE/src/common.inc --- old/themes/openSUSE/src/common.inc 2011-10-13 09:09:21.000000000 +0200 +++ new/themes/openSUSE/src/common.inc 2012-03-28 14:26:10.000000000 +0200 @@ -368,9 +368,9 @@ video.modes.list xmenu.video .xm_current get get dup .vm_mode get 0 ge { - dup .vm_height get exch .vm_width get - ",%04d%04d.spl" splash_file sprintf - } { pop } ifelse + ",19201200.spl" splash_file sprintf + } if + pop % check whether splash file exists splash_file 1 add filesize .undef eq { @@ -421,15 +421,8 @@ /splash_file xfree syslinux { - video.modes.list xmenu.video .xm_current get get .vm_mode get - - dup 0 ge { - 0x200 add "vga=0x%x " bc.cmd dup length add sprintf - } { - -1 eq { - "textmode=1 " bc.cmd dup length add sprintf - } if - } ifelse + video.modes.list xmenu.video .xm_current get get .vm_options get + "%s " bc.cmd dup length add sprintf v_impaired 1 ge { "braille=1 " bc.cmd dup length add sprintf @@ -1638,6 +1631,7 @@ /progress.bar.color "progress.bar.color" white gfxconfig.set.int /xmenu.normal.bg "menu.normal.bg" black gfxconfig.set.int /xmenu.normal.fg "menu.normal.fg" white gfxconfig.set.int +/xmenu.normal.alt.fg "menu.normal.alt.fg" 0x606060 gfxconfig.set.int /xmenu.selected.bg "menu.selected.bg" white gfxconfig.set.int /xmenu.selected.fg "menu.selected.fg" black gfxconfig.set.int /window.color.bg "window.bg" white gfxconfig.set.int diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/themes/openSUSE/src/dia_video.inc new/themes/openSUSE/src/dia_video.inc --- old/themes/openSUSE/src/dia_video.inc 2011-10-13 08:09:50.000000000 +0200 +++ new/themes/openSUSE/src/dia_video.inc 2012-03-28 14:26:10.000000000 +0200 @@ -9,9 +9,18 @@ % Some global vars. % % video mode array fields -/.vm_mode 0 def -/.vm_width 1 def -/.vm_height 2 def +/.vm_mode 0 def +/.vm_flags 1 def +/.vm_options 2 def +/.vm_label 3 def +/.vm_width 4 def +/.vm_height 5 def + +% .vm_flags: +% +% bit 0: is vbe mode +% 1: supported display res +% % We have kernel splash images for at least these sizes. /video.splashsizes [ @@ -78,6 +87,26 @@ % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Check if display supports that resolution. +% +% ( video_mode_list_entry ) ==> ( true|false ) +% +/video.resok { + false exch + + 0 2 video.res length 1 sub { + over over over + .vm_height get rot .vm_width get rot video.res exch get eq + rot 1 add video.res exch get rot eq and + { exch pop true exch exit } if + } for + + pop + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % Build video mode list. % % ( ) ==> ( ) @@ -87,10 +116,14 @@ /xmenu xmenu.video def + "ddc" findfile test1 + /video.res [ displaysizes ] def + % build list of video modes /video.modes.list [ - [ -1 0 0 ] % special: text mode - [ -2 1 0 ] % special: VESA mode (width = 1 to make it sort) + [ -1 0 "textmode=1" /txt_text_mode 0 0 ] % special: text mode + [ -2 0 "nomodeset" "No KMS" 1 0 ] % special: no KMS (width = 1 to make it sort) + [ -3 0 "" "Default" 2 0 ] % special: no video options (width = 2 to make it sort) % first, try 16 bit /vm_color_bits 16 def @@ -106,7 +139,7 @@ exch vm_color_bits eq and % color bits over 600 ge and % height >= 600 2 index 800 ge and % width >= 800 - { ] } { pop pop pop pop } ifelse + { 1 "" "" 5 -2 roll ] } { pop pop pop pop } ifelse } ifelse } for @@ -118,6 +151,17 @@ } ifelse } loop + % add display sizes + + video.res length { + 0 2 video.res length 1 sub { + [ + exch 0 2 "" "" 5 -1 roll + video.res over get exch video.res exch 1 add get + ] + } for + } if + ] def % sort video.modes.list @@ -140,9 +184,11 @@ /video.modes.list [ video.modes.list { - dup .vm_mode get 0 gt { % ensure it's not the first entry + dup .vm_mode get 0 ge { % ensure it's not the first entry over .vm_width get over .vm_width get eq 2 index .vm_height get 2 index .vm_height get eq and { + over .vm_mode get over .vm_mode get max 2 index .vm_mode rot put + over .vm_flags get over .vm_flags get or 2 index .vm_flags rot put free } if } if @@ -151,21 +197,45 @@ video.modes.list free def - % create mode strings + % create mode strings & menu labels + + true + + video.modes.list { + dup .vm_flags get 3 and { + dup .vm_options 64 string put + dup .vm_label 32 string put + + % add separating line before first entry + over { + dup .vm_label get "\x09" exch sprintf + exch pop false exch + } if + + dup .vm_flags get 1 and { + dup .vm_mode get 0x200 add over .vm_options get "vga=0x%x " exch sprintf + } if + + dup .vm_flags get 2 and { + dup .vm_height get over .vm_width get 2 index .vm_options get "video=%dx%d " exch dup length add sprintf + } if + + dup .vm_flags get 2 and 0 eq { + dup .vm_label get "\x01" exch dup length add sprintf + } if + + dup .vm_height get over .vm_width get 2 index .vm_label get "%d x %d" exch dup length add sprintf + } if + + pop + } forall + + pop + + % create menu /video.modes.text [ - video.modes.list { - dup .vm_width get - dup 0 eq { - pop pop /txt_text_mode - } { - dup 1 eq { - pop pop "VESA" - } { - exch .vm_height get exch "%d x %d" 32 string dup 5 1 roll sprintf - } ifelse - } ifelse - } forall + video.modes.list { .vm_label get } forall ] def % add to menu @@ -176,7 +246,7 @@ % select largest mode the monitor supports boot_failsafe 4 and { 0 0 } { monitorsize } ifelse - exch 800 max exch 600 max % at least 800x600 + exch 1024 max exch 768 max % at least 1024x768 % ATI quirk: avoid 1280x1024, older chips (<= 8MB, max res 1280x1024) use % interlaced there @@ -190,15 +260,15 @@ } if } if - xmenu .xm_current -1 put + % 'default' entry + xmenu .xm_current 2 put -1 video.modes.list { exch 1 add exch dup .vm_width get 4 index le - over .vm_height get 4 index le and - exch video.havesplash and { + exch .vm_height get 3 index le and { xmenu .xm_current 2 index put } if diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/themes/openSUSE/src/gfxboot.cfg new/themes/openSUSE/src/gfxboot.cfg --- old/themes/openSUSE/src/gfxboot.cfg 2011-10-13 08:17:33.000000000 +0200 +++ new/themes/openSUSE/src/gfxboot.cfg 2012-03-28 14:26:10.000000000 +0200 @@ -52,6 +52,7 @@ ; menu colors menu.normal.bg=0xd8deed menu.normal.fg=0x000000 +menu.normal.alt.fg=0x606060 menu.selected.bg=0x6c6c6c menu.selected.fg=0xffffff ; window colors diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/themes/openSUSE/src/xmenu.inc new/themes/openSUSE/src/xmenu.inc --- old/themes/openSUSE/src/xmenu.inc 2011-09-15 16:41:46.000000000 +0200 +++ new/themes/openSUSE/src/xmenu.inc 2012-03-28 14:26:10.000000000 +0200 @@ -256,6 +256,8 @@ % ( entry ) ==> ( ) % /xmenu.viewentry { + dup xmenu .xm_current get eq { true } { false } ifelse /xmenu.is_selected exch def + xmenu.font setfont dup xmenu.maxlines mod xmenu.lheight mul xmenu.y add /xmenu.pos.y exch def @@ -265,14 +267,14 @@ xmenu.pos.x xmenu.pos.y moveto - dup xmenu .xm_current get eq { xmenu.saved.selected } { xmenu.saved.normal } ifelse + xmenu.is_selected { xmenu.saved.selected } { xmenu.saved.normal } ifelse dup { transp { pop } { restorescreen } ifelse } { pop - dup xmenu .xm_current get eq { xmenu.selected.bg } { xmenu.normal.bg } ifelse + xmenu.is_selected { xmenu.selected.bg } { xmenu.normal.bg } ifelse setcolor xmenu.width xmenu.lheight fillrect dup xmenu .xm_current get eq { @@ -280,7 +282,7 @@ xmenu.dark xmenu.light xmenu.width xmenu.lheight drawborder } if - dup xmenu .xm_current get eq { /xmenu.saved.selected } { /xmenu.saved.normal } ifelse + xmenu.is_selected { /xmenu.saved.selected } { /xmenu.saved.normal } ifelse xmenu.pos.x xmenu.pos.y moveto xmenu.width xmenu.lheight savescreen @@ -290,7 +292,7 @@ transp { % copy entry to avoid reading the screen again - dup xmenu .xm_current get eq { xmenu.saved.selected } { xmenu.saved.normal } ifelse + xmenu.is_selected { xmenu.saved.selected } { xmenu.saved.normal } ifelse xmenu.tmpbuf .undef eq { dup length malloc /xmenu.tmpbuf exch def } if @@ -302,7 +304,7 @@ xmenu.pos.x xmenu.pos.y moveto xmenu.tmpbuf restorescreen } if - dup xmenu .xm_current get eq { xmenu.selected.fg } { xmenu.normal.fg } ifelse setcolor + xmenu.is_selected { xmenu.selected.fg } { xmenu.normal.fg } ifelse setcolor config.rtl { xmenu.pos.x xmenu.width add xmenu.hspace sub xmenu.pos.y xmenu.vspace add moveto @@ -326,6 +328,8 @@ setcolor moveto + dup 0 get '\x01' eq xmenu.is_selected not and { 1 add xmenu.normal.alt.fg setcolor } if + dup 0 get '\x09' eq { 1 add show.rtl @@ -339,6 +343,8 @@ } ifelse } { + dup 0 get '\x01' eq xmenu.is_selected not and { 1 add xmenu.normal.alt.fg setcolor } if + show.rtl } ifelse ++++++ upstream.tar.bz2 ++++++ -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org