From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1Te6F8-00028f-AV for mharc-grub-devel@gnu.org; Thu, 29 Nov 2012 10:41:38 -0500 Received: from eggs.gnu.org ([208.118.235.92]:60215) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Te6F1-00025F-Gq for grub-devel@gnu.org; Thu, 29 Nov 2012 10:41:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Te6F0-0002vf-A5 for grub-devel@gnu.org; Thu, 29 Nov 2012 10:41:31 -0500 Received: from collab.rosalab.ru ([217.199.216.181]:33354) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Te6Ez-0002vR-TH for grub-devel@gnu.org; Thu, 29 Nov 2012 10:41:30 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by collab.rosalab.ru (Postfix) with ESMTP id 728A529C3AA for ; Thu, 29 Nov 2012 19:41:27 +0400 (MSK) X-Virus-Scanned: amavisd-new at rosalab.ru Received: from collab.rosalab.ru ([127.0.0.1]) by localhost (collab.rosalab.ru [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id v0OO1T5spz07 for ; Thu, 29 Nov 2012 19:41:26 +0400 (MSK) Received: from icedphoenix.localnet (unknown [10.168.1.56]) by collab.rosalab.ru (Postfix) with ESMTPSA id EBF7229C2CF for ; Thu, 29 Nov 2012 19:41:26 +0400 (MSK) From: Vladimir Testov To: grub-devel@gnu.org Subject: Re: How can I contribute the patch to the upstream? Date: Thu, 29 Nov 2012 19:41:26 +0400 Message-ID: <1395399.J5T1BaS7HD@icedphoenix> User-Agent: KMail/4.8.5 (Linux/3.2.0-33-generic; KDE/4.8.5; x86_64; ; ) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="nextPart2920728.ZYPFuuTbyh" Content-Transfer-Encoding: 7Bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 217.199.216.181 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Nov 2012 15:41:37 -0000 --nextPart2920728.ZYPFuuTbyh Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" You're welcome to add this patch to the upstream. =(^_^)= -- With best regards, _______________________________ Vladimir Testov, ROSA Laboratory. www.rosalab.ru --nextPart2920728.ZYPFuuTbyh Content-Disposition: attachment; filename="grub2-theme-not_selected_item_box.patch" Content-Transfer-Encoding: 7Bit Content-Type: text/x-patch; charset="UTF-8"; name="grub2-theme-not_selected_item_box.patch" diff -Naur grub-2.00/grub-core/gfxmenu/gui_list.c grub-new/grub-core/gfxmenu/gui_list.c --- grub-2.00/grub-core/gfxmenu/gui_list.c 2011-12-14 14:36:07.000000000 +0400 +++ grub-new/grub-core/gfxmenu/gui_list.c 2012-11-29 16:00:36.642209919 +0400 @@ -58,8 +58,10 @@ int need_to_recreate_boxes; char *theme_dir; char *menu_box_pattern; + char *item_box_pattern; char *selected_item_box_pattern; grub_gfxmenu_box_t menu_box; + grub_gfxmenu_box_t item_box; grub_gfxmenu_box_t selected_item_box; grub_gfxmenu_icon_manager_t icon_manager; @@ -76,11 +78,14 @@ grub_free (self->theme_dir); grub_free (self->menu_box_pattern); + grub_free (self->item_box_pattern); grub_free (self->selected_item_box_pattern); if (self->menu_box) self->menu_box->destroy (self->menu_box); if (self->selected_item_box) self->selected_item_box->destroy (self->selected_item_box); + if (self->item_box) + self->item_box->destroy (self->item_box); if (self->icon_manager) grub_gfxmenu_icon_manager_destroy (self->icon_manager); @@ -115,10 +120,14 @@ self->selected_item_box_pattern, self->theme_dir); + grub_gui_recreate_box (&self->item_box, + self->item_box_pattern, + self->theme_dir); + self->need_to_recreate_boxes = 0; } - return (self->menu_box != 0 && self->selected_item_box != 0); + return (self->menu_box != 0 && self->selected_item_box != 0 && self->item_box != 0); } static int @@ -212,7 +221,7 @@ static void draw_menu (list_impl_t self, int num_shown_items) { - if (! self->menu_box || ! self->selected_item_box) + if (! self->menu_box || ! self->selected_item_box || !self->item_box) return; int boxpad = self->item_padding; @@ -225,6 +234,7 @@ make_selected_item_visible (self); + grub_gfxmenu_box_t itbox = self->item_box; grub_gfxmenu_box_t selbox = self->selected_item_box; int sel_leftpad = selbox->get_left_pad (selbox); int sel_toppad = selbox->get_top_pad (selbox); @@ -256,7 +266,15 @@ selbox->draw (selbox, 0, item_top - sel_toppad); } - + else + { + int cwidth = oviewport.width - 2 * boxpad - 2; + if (itbox->get_border_width) + cwidth -= itbox->get_border_width (itbox); + itbox->set_content_size (itbox, cwidth, item_height - 1); + itbox->draw (itbox, 0, + item_top - sel_toppad); + } icon = get_item_icon (self, menu_index); if (icon != 0) grub_video_blit_bitmap (icon, GRUB_VIDEO_BLIT_BLEND, @@ -302,7 +320,7 @@ check_boxes (self); - if (! self->menu_box || ! self->selected_item_box) + if (! self->menu_box || ! self->selected_item_box || ! self->item_box) return; grub_gui_set_viewport (&self->bounds, &vpsave); @@ -487,6 +505,12 @@ grub_free (self->menu_box_pattern); self->menu_box_pattern = value ? grub_strdup (value) : 0; } + else if (grub_strcmp (name, "item_pixmap_style") == 0) + { + self->need_to_recreate_boxes = 1; + grub_free (self->item_box_pattern); + self->item_box_pattern = value ? grub_strdup (value) : 0; + } else if (grub_strcmp (name, "selected_item_pixmap_style") == 0) { self->need_to_recreate_boxes = 1; @@ -604,8 +628,10 @@ self->need_to_recreate_boxes = 0; self->theme_dir = 0; self->menu_box_pattern = 0; + self->item_box_pattern = 0; self->selected_item_box_pattern = 0; self->menu_box = grub_gfxmenu_create_box (0, 0); + self->item_box = grub_gfxmenu_create_box (0, 0); self->selected_item_box = grub_gfxmenu_create_box (0, 0); self->icon_manager = grub_gfxmenu_icon_manager_new (); --nextPart2920728.ZYPFuuTbyh--